Documentation
¶
Overview ¶
Package core contains functionality related to the core module.
Index ¶
- Constants
- func DecodeEvent(event *types.Event) ([]client.DecodedEvent, error)
- type CallDataPublicKeyResponse
- type EstimateGasQuery
- type Event
- type ExecuteReadOnlyTxQuery
- type ExecuteReadOnlyTxResponse
- type GasCosts
- type GasUsedEvent
- type MethodHandlerInfo
- type ModuleInfo
- type Parameters
- type RuntimeInfoResponse
- type V1
Constants ¶
const ( MethodHandlerKindCall methodHandlerKind = "call" MethodHandlerKindQuery methodHandlerKind = "query" MethodHandlerKindMessageResult methodHandlerKind = "message_result" )
These constants represent the kinds of methods that handlers handle.
const (
// GasUsedEventCode is the event code for the gas used event.
GasUsedEventCode = 1
)
const ModuleName = "core"
ModuleName is the core module name.
Variables ¶
This section is empty.
Functions ¶
func DecodeEvent ¶ added in v0.2.0
func DecodeEvent(event *types.Event) ([]client.DecodedEvent, error)
DecodeEvent decodes a core event.
Types ¶
type CallDataPublicKeyResponse ¶ added in v0.3.0
type CallDataPublicKeyResponse struct {
// PublicKey is the signed runtime call data public key.
PublicKey types.SignedPublicKey `json:"public_key"`
// Epoch is the epoch of the ephemeral runtime key.
Epoch uint64 `json:"epoch,omitempty"`
}
CallDataPublicKeyResponse is the response of the core.CallDataPublicKey query.
type EstimateGasQuery ¶ added in v0.2.0
type EstimateGasQuery struct {
// Caller is the address of the caller for which to do estimation. If not specified the
// authentication information from the passed transaction is used.
Caller *types.CallerAddress `json:"caller,omitempty"`
// Tx is the unsigned transaction to estimate.
Tx *types.Transaction `json:"tx"`
// PropagateFailures indicates if the estimate gas query should propagate transaction failures.
PropagateFailures bool `json:"propagate_failures,omitempty"`
}
EstimateGasQuery is the body of the core.EstimateGas query.
type Event ¶ added in v0.2.0
type Event struct {
GasUsed *GasUsedEvent
}
Event is a core module event.
type ExecuteReadOnlyTxQuery ¶ added in v0.3.0
type ExecuteReadOnlyTxQuery struct {
Tx []byte `json:"tx"`
}
ExecuteReadOnlyTxQuery is the body of the core.ExecuteReadOnlyTx query.
type ExecuteReadOnlyTxResponse ¶ added in v0.3.0
type ExecuteReadOnlyTxResponse struct {
Result types.CallResult `json:"result"`
}
ExecuteReadOnlyTxResponse is the response of the core.ExecuteReadOnlyTx query.
type GasCosts ¶ added in v0.2.0
type GasCosts struct {
TxByte uint64 `json:"tx_byte"`
AuthSignature uint64 `json:"auth_signature"`
AuthMultisigSigner uint64 `json:"auth_multisig_signer"`
CallformatX25519Deoxysii uint64 `json:"callformat_x25519_deoxysii"`
}
GasCosts are the core module gas costs.
type GasUsedEvent ¶ added in v0.2.0
type GasUsedEvent struct {
Amount uint64 `json:"amount"`
}
GasUsedEvent is a gas used event.
type MethodHandlerInfo ¶ added in v0.3.0
type MethodHandlerInfo struct {
// Name is the name of the RPC.
Name string `json:"name"`
// Kind is the kind of the RPC.
Kind methodHandlerKind `json:"kind"`
}
MethodHandlerInfo describes a single RPC.
type ModuleInfo ¶ added in v0.3.0
type ModuleInfo struct {
// Version is the version of the module.
Version uint32 `json:"version"`
// Params are the initial parameters of the module.
Params cbor.RawMessage `json:"params"`
// Methods are the RPC methods exposed by the module.
Methods []MethodHandlerInfo `json:"methods"`
}
ModuleInfo is the information about a single module within the runtime.
type Parameters ¶ added in v0.2.0
type Parameters struct {
MaxBatchGas uint64 `json:"max_batch_gas"`
MaxTxSigners uint32 `json:"max_tx_signers"`
MaxMultisigSigners uint32 `json:"max_multisig_signers"`
GasCosts GasCosts `json:"gas_costs"`
MinGasPrice map[types.Denomination]quantity.Quantity `json:"min_gas_price"`
MaxTxSize uint32 `json:"max_tx_size,omitempty"`
}
Parameters are the parameters for the core module.
type RuntimeInfoResponse ¶ added in v0.3.0
type RuntimeInfoResponse struct {
RuntimeVersion *version.Version `json:"runtime_version"`
// StateVersion is the version of the schema used by the runtime for keeping its state.
StateVersion uint32 `json:"state_version"`
// Modules are the SDK modules that comprise this runtime.
Modules map[string]ModuleInfo `json:"modules"`
}
RuntimeInfoResponse is the response of the core.RuntimeInfo query and provides basic introspection information about the runtime.
type V1 ¶
type V1 interface {
client.EventDecoder
// Parameters queries the core module parameters.
Parameters(ctx context.Context, round uint64) (*Parameters, error)
// EstimateGas performs gas estimation for executing the given transaction.
EstimateGas(ctx context.Context, round uint64, tx *types.Transaction, propagateFailures bool) (uint64, error)
// EstimateGasForCaller performs gas estimation for executing the given transaction as if the
// caller specified by address had executed it.
EstimateGasForCaller(ctx context.Context, round uint64, caller types.CallerAddress, tx *types.Transaction, propagateFailures bool) (uint64, error)
// MinGasPrice returns the minimum gas price.
MinGasPrice(ctx context.Context, round uint64) (map[types.Denomination]types.Quantity, error)
// GetEvents returns all core events emitted in a given block.
GetEvents(ctx context.Context, round uint64) ([]*Event, error)
// RuntimeInfo returns basic info about the module and the containing runtime.
RuntimeInfo(ctx context.Context) (*RuntimeInfoResponse, error)
// CallDataPublicKey returns the runtime's call data public key.
CallDataPublicKey(ctx context.Context) (*CallDataPublicKeyResponse, error)
// ExecuteReadOnlyTx executes a read only transaction.
ExecuteReadOnlyTx(ctx context.Context, round uint64, tx *types.UnverifiedTransaction) (*ExecuteReadOnlyTxResponse, error)
}
V1 is the v1 core module interface.
func NewV1 ¶
func NewV1(rc client.RuntimeClient) V1
NewV1 generates a V1 client helper for the core module.