types

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Mar 29, 2023 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TokenMappingProposalName          = system.Chain + "/erc20/TokenMappingProposal"
	ProxyContractRedirectProposalName = system.Chain + "/erc20/ProxyContractRedirectProposal"
	ContractTemplateProposalName      = system.Chain + "/erc20/ContractTemplateProposal"
	CompiledContractProposalName      = system.Chain + "/erc20/Contract"
)
View Source
const (
	IbcEvmModuleName = "ibc-evm"

	ContractMintMethod = "mint_by_okbc_module"

	ProxyContractUpgradeTo   = "upgradeTo"
	ProxyContractChangeAdmin = "changeAdmin"
)
View Source
const (
	EventTypDeployModuleERC20 = "deploy_erc20_contract"
	EventTypCallModuleERC20   = "call_erc20_contract"
	EventTypLock              = "erc20_lock"
	EventTypBurn              = "erc20_burn"

	AttributeKeyContractAddr   = "contract_address"
	AttributeKeyContractMethod = "contract_method"
	AttributeKeyFrom           = "from"
	AttributeKeyTo             = "to"

	InnerTxUnlock    = "erc20-unlock"
	InnerTxMint      = "erc20-mint"
	InnerTxSendToIbc = "erc20-send-to-ibc"
)
View Source
const (
	// ModuleName string name of module
	ModuleName = "erc20"
	// StoreKey key for ethereum storage data, account code (StateDB) or block
	// related data for Web3.
	// The erc20 module should use a prefix store.
	StoreKey = ModuleName
	// RouterKey uses module name for routing
	RouterKey = ModuleName

	QueryParameters      = "params"
	QueryTokenMapping    = "token-mapping"
	QueryContractByDenom = "contract-by-denom"
	QueryDenomByContract = "denom-by-contract"
	QueryContractTem     = "current-template-contract"
)
View Source
const (
	// DefaultParamspace for params keeper
	DefaultParamspace = ModuleName

	DefaultIbcTimeout            = uint64(86400000000000) // 1 day
	DefaultAutoDeploymentEnabled = true
)
View Source
const (
	ProposalTypeContextTemplateProxy = "proxy"
	ProposalTypeContextTemplateImpl  = "implement"
)
View Source
const (
	RedirectImplementation = iota
	RedirectOwner
)
View Source
const (
	DefaultCodespace string = ModuleName
)
View Source
const (
	IbcDenomPrefix = "ibc/"
)

Variables

View Source
var (
	IbcEvmModuleETHAddr  common.Address
	IbcEvmModuleBechAddr sdk.AccAddress

	// ModuleERC20Contract is the compiled okbc erc20 contract
	ModuleERC20Contract CompiledContract
)
View Source
var (
	// ErrChainConfigNotFound returns an error if the chain config cannot be found on the store.
	ErrChainConfigNotFound = sdkerrors.Register(DefaultCodespace, 1, "chain configuration not found")
	// ErrKeyNotFound returns an error if the target key not found in database.
	ErrKeyNotFound = sdkerrors.Register(DefaultCodespace, 2, "Key not found in database")
	// ErrUnexpectedProposalType returns an error when the proposal type is not supported in erc20 module
	ErrUnexpectedProposalType = sdkerrors.Register(DefaultCodespace, 3, "Unsupported proposal type of erc20 module")
	// ErrEmptyAddressList returns an error if the address list is empty
	ErrEmptyAddressList   = sdkerrors.Register(DefaultCodespace, 4, "Empty account address list")
	ErrIbcDenomInvalid    = sdkerrors.Register(DefaultCodespace, 5, "ibc denom is invalid")
	ErrNoContractDeployed = sdkerrors.Register(DefaultCodespace, 6, "no contract deployed")

	ErrNoContractNotAuto = errors.New("no contract found and not auto deploy for the denom ")
)
View Source
var (
	KeyPrefixContractToDenom  = []byte{0x01}
	KeyPrefixDenomToContract  = []byte{0x02}
	KeyPrefixTemplateContract = []byte{0x03}
)

KVStore key prefixes

View Source
var (
	KeyEnableAutoDeployment = []byte("EnableAutoDeployment")
	KeyIbcTimeout           = []byte("IbcTimeout")
)
View Source
var ModuleCdc = codec.New()

ModuleCdc defines the erc20 module's codec

View Source
var RedirectMap = map[RedirectType]string{
	RedirectImplementation: "ImplementationAddr",
	RedirectOwner:          "OwnerAddr",
}

Functions

func ConstructContractKey

func ConstructContractKey(str string) []byte

func ContractToDenomKey

func ContractToDenomKey(contract []byte) []byte

ContractToDenomKey defines the store key for contract to denom reverse index

func DenomToContractKey

func DenomToContractKey(denom string) []byte

DenomToContractKey defines the store key for denom to contract mapping

func ErrProxyContractRedirect

func ErrProxyContractRedirect(denom string, tp int, addr string) sdk.EnvelopedErr

func ErrRegisteredContract

func ErrRegisteredContract(contract string) sdk.EnvelopedErr

func GetInternalImplementationBytes

func GetInternalImplementationBytes() []byte

func GetInternalProxyBytes

func GetInternalProxyBytes() []byte

func IsValidIBCDenom

func IsValidIBCDenom(denom string) bool

IsValidIBCDenom returns if denom is a valid ibc denom

func MarshalCompileContract

func MarshalCompileContract(data CompiledContract) ([]byte, error)

func MustMarshalCompileContract

func MustMarshalCompileContract(data CompiledContract) []byte

func ParamKeyTable

func ParamKeyTable() params.KeyTable

ParamKeyTable returns the parameter key table.

func RegisterCodec

func RegisterCodec(cdc *codec.Codec)

RegisterCodec registers all the necessary types and interfaces for the erc20 module

Types

type CompiledContract

type CompiledContract struct {
	ABI abi.ABI
	Bin string
}

CompiledContract contains compiled bytecode and abi

func MustUnmarshalCompileContract

func MustUnmarshalCompileContract(data []byte) CompiledContract

func UnmarshalCompileContract

func UnmarshalCompileContract(data []byte) (CompiledContract, error)

func (CompiledContract) ValidBasic

func (c CompiledContract) ValidBasic() error

type ContractByDenomRequest

type ContractByDenomRequest struct {
	Denom string `json:"denom,omitempty"`
}

type ContractTemplate

type ContractTemplate struct {
	Proxy     string `json:"proxy"`
	Implement string `json:"implement"`
}

type ContractTemplateProposal

type ContractTemplateProposal struct {
	Title        string `json:"title" yaml:"title"`
	Description  string `json:"description" yaml:"description"`
	ContractType string `json:"contract_type"`
	Contract     string `json:"contract"`
}

func NewContractTemplateProposal

func NewContractTemplateProposal(title string, description string, contractType string, contract string) ContractTemplateProposal

func (ContractTemplateProposal) GetDescription

func (b ContractTemplateProposal) GetDescription() string

func (ContractTemplateProposal) GetTitle

func (b ContractTemplateProposal) GetTitle() string

func (ContractTemplateProposal) ProposalRoute

func (b ContractTemplateProposal) ProposalRoute() string

func (ContractTemplateProposal) ProposalType

func (b ContractTemplateProposal) ProposalType() string

func (ContractTemplateProposal) String

func (b ContractTemplateProposal) String() string

func (ContractTemplateProposal) ValidateBasic

func (b ContractTemplateProposal) ValidateBasic() sdk.Error

type DenomByContractRequest

type DenomByContractRequest struct {
	Contract string `json:"contract,omitempty"`
}

type GenesisState

type GenesisState struct {
	Params        Params         `json:"params"`
	TokenMappings []TokenMapping `json:"token_mappings"`
}

GenesisState defines the erc20 module genesis state

func DefaultGenesisState

func DefaultGenesisState() GenesisState

DefaultGenesisState sets default erc20 genesis state with empty accounts and default params and chain config values.

func (GenesisState) Validate

func (gs GenesisState) Validate() error

Validate performs basic genesis state validation returning an error upon any failure.

type Params

type Params struct {
	EnableAutoDeployment bool   `json:"enable_auto_deployment" yaml:"enable_auto_deployment"`
	IbcTimeout           uint64 `json:"ibc_timeout" yaml:"ibc_timeout"`
}

Params defines the module parameters

func DefaultParams

func DefaultParams() Params

DefaultParams returns default parameters

func NewParams

func NewParams(enableAutoDeployment bool, ibcTimeout uint64) Params

NewParams creates a new Params instance

func (*Params) ParamSetPairs

func (p *Params) ParamSetPairs() params.ParamSetPairs

ParamSetPairs returns the parameter set pairs.

func (Params) String

func (p Params) String() string

String implements the fmt.Stringer interface

func (Params) Validate

func (p Params) Validate() error

Validate performs basic validation on erc20 parameters.

type ProxyContractRedirectProposal

type ProxyContractRedirectProposal struct {
	Title       string       `json:"title" yaml:"title"`
	Description string       `json:"description" yaml:"description"`
	Denom       string       `json:"denom" yaml:"denom"`
	Tp          RedirectType `json:"type" yaml:"type"`
	Addr        string       `json:"addr" yaml:"addr"`
}

func NewProxyContractRedirectProposal

func NewProxyContractRedirectProposal(title, description, denom string, tp RedirectType, addr *common.Address) ProxyContractRedirectProposal

func (ProxyContractRedirectProposal) GetDescription

func (tp ProxyContractRedirectProposal) GetDescription() string

func (ProxyContractRedirectProposal) GetTitle

func (tp ProxyContractRedirectProposal) GetTitle() string

func (ProxyContractRedirectProposal) ProposalRoute

func (tp ProxyContractRedirectProposal) ProposalRoute() string

func (ProxyContractRedirectProposal) ProposalType

func (tp ProxyContractRedirectProposal) ProposalType() string

func (ProxyContractRedirectProposal) String

func (ProxyContractRedirectProposal) ValidateBasic

func (tp ProxyContractRedirectProposal) ValidateBasic() sdk.Error

type QueryTokenMappingResponse

type QueryTokenMappingResponse struct {
	Denom     string `json:"denom"`
	Contract  string `json:"contract"`
	Path      string `json:"path,omitempty"`
	BaseDenom string `json:"base_denom,omitempty"`
}

type RedirectType

type RedirectType int

type TokenMapping

type TokenMapping struct {
	Denom    string `json:"denom"`
	Contract string `json:"contract"`
}

TokenMapping defines a mapping between native denom and contract

type TokenMappingProposal

type TokenMappingProposal struct {
	Title       string `json:"title" yaml:"title"`
	Description string `json:"description" yaml:"description"`
	Denom       string `json:"denom" yaml:"denom"`
	Contract    string `json:"contract" yaml:"contract"`
}

func NewTokenMappingProposal

func NewTokenMappingProposal(title, description, denom string, contractAddr *common.Address) TokenMappingProposal

func (TokenMappingProposal) GetDescription

func (tp TokenMappingProposal) GetDescription() string

func (TokenMappingProposal) GetTitle

func (tp TokenMappingProposal) GetTitle() string

func (TokenMappingProposal) ProposalRoute

func (tp TokenMappingProposal) ProposalRoute() string

func (TokenMappingProposal) ProposalType

func (tp TokenMappingProposal) ProposalType() string

func (TokenMappingProposal) String

func (tp TokenMappingProposal) String() string

func (TokenMappingProposal) ValidateBasic

func (tp TokenMappingProposal) ValidateBasic() sdk.Error

Jump to

Keyboard shortcuts

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