Documentation ¶
Index ¶
- Constants
- func DecodeEvent(event *types.Event) ([]client.DecodedEvent, error)
- func NewCallTx(fee *types.Fee, body *Call) *types.Transaction
- func NewCreateTx(fee *types.Fee, body *Create) *types.Transaction
- type BalanceQuery
- type Call
- type CodeQuery
- type Create
- type Event
- type GasCosts
- type Leash
- type Parameters
- type RSVSigner
- type SignedCallDataPack
- type SimulateCallQuery
- type StorageQuery
- type V1
Constants ¶
const ModuleName = "evm"
ModuleName is the EVM module name.
Variables ¶
This section is empty.
Functions ¶
func DecodeEvent ¶
func DecodeEvent(event *types.Event) ([]client.DecodedEvent, error)
DecodeEvent decodes an evm event.
func NewCallTx ¶ added in v0.3.0
func NewCallTx(fee *types.Fee, body *Call) *types.Transaction
NewCallTx generates a new evm.Call transaction.
func NewCreateTx ¶ added in v0.3.0
func NewCreateTx(fee *types.Fee, body *Create) *types.Transaction
NewCreateTx generates a new evm.Create transaction.
Types ¶
type BalanceQuery ¶
type BalanceQuery struct {
Address []byte `json:"address"`
}
BalanceQuery queries the EVM account balance.
type Call ¶
type Call struct { Address []byte `json:"address"` Value []byte `json:"value"` Data []byte `json:"data"` }
Call is an EVM CALL transaction.
type CodeQuery ¶
type CodeQuery struct {
Address []byte `json:"address"`
}
CodeQuery queries the EVM code storage.
type Event ¶
type Event struct { Address []byte `json:"address"` Topics [][]byte `json:"topics"` Data []byte `json:"data"` }
Event is an event emitted by the EVM module.
type Parameters ¶
type Parameters struct {
GasCosts GasCosts `json:"gas_costs"`
}
Parameters are the parameters for the EVM module.
type RSVSigner ¶ added in v0.3.0
type RSVSigner interface { // Sign returns a 65-byte secp256k1 signature as (R || S || V) over the provided digest. SignRSV(digest [32]byte) ([]byte, error) }
RSVSigner is a type that produces secp256k1 signatures in RSV format.
type SignedCallDataPack ¶ added in v0.3.0
type SignedCallDataPack struct { Data types.Call `json:"data"` Leash Leash `json:"leash"` Signature []byte `json:"signature"` }
SignedCallDataPack defines a signed call.
It should be encoded and sent in the `data` field of an Ethereum call.
func NewSignedCallDataPack ¶ added in v0.3.0
func NewSignedCallDataPack(signer RSVSigner, chainID uint64, caller, callee []byte, gasLimit uint64, gasPrice, value *big.Int, data []byte, leash Leash) (*SignedCallDataPack, error)
NewSignedCallDataPack returns a SignedCallDataPack.
This method does not encrypt `data`, so that should be done afterwards.
type SimulateCallQuery ¶
type SimulateCallQuery struct { GasPrice []byte `json:"gas_price"` GasLimit uint64 `json:"gas_limit"` Caller []byte `json:"caller"` Address []byte `json:"address,omitempty"` Value []byte `json:"value"` Data []byte `json:"data"` }
SimulateCallQuery simulates an EVM CALL.
type StorageQuery ¶
StorageQuery queries the EVM storage.
type V1 ¶
type V1 interface { client.EventDecoder // Create generates an EVM CREATE transaction. // Note that the transaction's gas limit should be set to cover both the // SDK gas limit and the EVM gas limit. The transaction fee should be // high enough to cover the EVM gas price multiplied by the EVM gas limit. Create(value []byte, initCode []byte) *client.TransactionBuilder // Call generates an EVM CALL transaction. // Note that the transaction's gas limit should be set to cover both the // SDK gas limit and the EVM gas limit. The transaction fee should be // high enough to cover the EVM gas price multiplied by the EVM gas limit. Call(address []byte, value []byte, data []byte) *client.TransactionBuilder // Storage queries the EVM storage. Storage(ctx context.Context, round uint64, address []byte, index []byte) ([]byte, error) // Code queries the EVM code storage. Code(ctx context.Context, round uint64, address []byte) ([]byte, error) // Balance queries the EVM account balance. Balance(ctx context.Context, round uint64, address []byte) (*types.Quantity, error) // SimulateCall simulates an EVM CALL. SimulateCall(ctx context.Context, round uint64, gasPrice []byte, gasLimit uint64, caller []byte, address []byte, value []byte, data []byte) ([]byte, error) // Parameters queries the EVM module parameters. Parameters(ctx context.Context, round uint64) (*Parameters, error) // GetEvents returns events emitted by the EVM module. GetEvents(ctx context.Context, round uint64) ([]*Event, error) }
V1 is the v1 EVM module interface.
func NewV1 ¶
func NewV1(rtc client.RuntimeClient) V1
NewV1 generates a V1 client helper for the EVM module.