mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-29 09:45:18 +00:00
f4b8bf8f07
* first pass at convert cosmos coin -> evm msg * test ConvertCosmosCoinFromERC20 method * test message server for MsgConvertCosmosCoinFromERC20 * update spec to include MsgConvertCosmosCoinFromERC20 * update changelog * add CLI command for convert-cosmos-coin-from-erc20 * add test of removed/re-enable denom for convert
85 lines
3.5 KiB
Protocol Buffer
85 lines
3.5 KiB
Protocol Buffer
syntax = "proto3";
|
|
package kava.evmutil.v1beta1;
|
|
|
|
import "cosmos/base/v1beta1/coin.proto";
|
|
import "cosmos_proto/cosmos.proto";
|
|
import "gogoproto/gogo.proto";
|
|
|
|
option go_package = "github.com/kava-labs/kava/x/evmutil/types";
|
|
option (gogoproto.equal_all) = true;
|
|
option (gogoproto.verbose_equal_all) = true;
|
|
|
|
// Msg defines the evmutil Msg service.
|
|
service Msg {
|
|
// ConvertCoinToERC20 defines a method for converting sdk.Coin to Kava ERC20.
|
|
rpc ConvertCoinToERC20(MsgConvertCoinToERC20) returns (MsgConvertCoinToERC20Response);
|
|
|
|
// ConvertERC20ToCoin defines a method for converting Kava ERC20 to sdk.Coin.
|
|
rpc ConvertERC20ToCoin(MsgConvertERC20ToCoin) returns (MsgConvertERC20ToCoinResponse);
|
|
|
|
// ConvertCosmosCoinToERC20 defines a method for converting a cosmos sdk.Coin to an ERC20.
|
|
rpc ConvertCosmosCoinToERC20(MsgConvertCosmosCoinToERC20) returns (MsgConvertCosmosCoinToERC20Response);
|
|
|
|
// ConvertCosmosCoinFromERC20 defines a method for converting a cosmos sdk.Coin to an ERC20.
|
|
rpc ConvertCosmosCoinFromERC20(MsgConvertCosmosCoinFromERC20) returns (MsgConvertCosmosCoinFromERC20Response);
|
|
}
|
|
|
|
// MsgConvertCoinToERC20 defines a conversion from sdk.Coin to Kava ERC20 for EVM-native assets.
|
|
message MsgConvertCoinToERC20 {
|
|
// Kava bech32 address initiating the conversion.
|
|
string initiator = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
|
// EVM 0x hex address that will receive the converted Kava ERC20 tokens.
|
|
string receiver = 2;
|
|
// Amount is the sdk.Coin amount to convert.
|
|
cosmos.base.v1beta1.Coin amount = 3;
|
|
}
|
|
|
|
// MsgConvertCoinToERC20Response defines the response value from Msg/ConvertCoinToERC20.
|
|
message MsgConvertCoinToERC20Response {}
|
|
|
|
// MsgConvertERC20ToCoin defines a conversion from Kava ERC20 to sdk.Coin for EVM-native assets.
|
|
message MsgConvertERC20ToCoin {
|
|
// EVM 0x hex address initiating the conversion.
|
|
string initiator = 1;
|
|
// Kava bech32 address that will receive the converted sdk.Coin.
|
|
string receiver = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
|
// EVM 0x hex address of the ERC20 contract.
|
|
string kava_erc20_address = 3 [(gogoproto.customname) = "KavaERC20Address"];
|
|
// ERC20 token amount to convert.
|
|
string amount = 4 [
|
|
(cosmos_proto.scalar) = "cosmos.Int",
|
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
|
(gogoproto.nullable) = false
|
|
];
|
|
}
|
|
|
|
// MsgConvertERC20ToCoinResponse defines the response value from
|
|
// Msg/MsgConvertERC20ToCoin.
|
|
message MsgConvertERC20ToCoinResponse {}
|
|
|
|
// MsgConvertCosmosCoinToERC20 defines a conversion from cosmos sdk.Coin to ERC20 for cosmos-native assets.
|
|
message MsgConvertCosmosCoinToERC20 {
|
|
// Kava bech32 address initiating the conversion.
|
|
string initiator = 1;
|
|
// EVM hex address that will receive the ERC20 tokens.
|
|
string receiver = 2;
|
|
// Amount is the sdk.Coin amount to convert.
|
|
cosmos.base.v1beta1.Coin amount = 3;
|
|
}
|
|
|
|
// MsgConvertCosmosCoinToERC20Response defines the response value from Msg/MsgConvertCosmosCoinToERC20.
|
|
message MsgConvertCosmosCoinToERC20Response {}
|
|
|
|
// MsgConvertCosmosCoinFromERC20 defines a conversion from ERC20 to cosmos coins for cosmos-native assets.
|
|
message MsgConvertCosmosCoinFromERC20 {
|
|
// EVM hex address initiating the conversion.
|
|
string initiator = 1;
|
|
// Kava bech32 address that will receive the cosmos coins.
|
|
string receiver = 2;
|
|
// Amount is the amount to convert, expressed as a Cosmos coin.
|
|
cosmos.base.v1beta1.Coin amount = 3;
|
|
}
|
|
|
|
// MsgConvertCosmosCoinFromERC20Response defines the response value from Msg/MsgConvertCosmosCoinFromERC20.
|
|
message MsgConvertCosmosCoinFromERC20Response {}
|