mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-02 17:31:39 +00:00
113 lines
2.8 KiB
Protocol Buffer
113 lines
2.8 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package dex.v1;
|
|
|
|
option go_package = "github.com/sonr-io/sonr/x/dex/types";
|
|
|
|
import "gogoproto/gogo.proto";
|
|
import "cosmos_proto/cosmos.proto";
|
|
import "google/protobuf/timestamp.proto";
|
|
import "cosmos/base/v1beta1/coin.proto";
|
|
|
|
// InterchainDEXAccount represents a DEX account on a remote chain
|
|
message InterchainDEXAccount {
|
|
option (gogoproto.goproto_getters) = false;
|
|
|
|
// DID controller of this account
|
|
string did = 1;
|
|
|
|
// IBC connection to the remote chain
|
|
string connection_id = 2;
|
|
|
|
// Remote chain ID (e.g., osmosis-1)
|
|
string host_chain_id = 3;
|
|
|
|
// Account address on the remote chain
|
|
string account_address = 4 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
|
|
|
// ICA port ID for this account
|
|
string port_id = 5;
|
|
|
|
// Account creation timestamp
|
|
google.protobuf.Timestamp created_at = 6
|
|
[(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
|
|
|
|
// Enabled features for this account
|
|
repeated string enabled_features = 7;
|
|
|
|
// Account status
|
|
AccountStatus status = 8;
|
|
}
|
|
|
|
// AccountStatus defines the status of an ICA account
|
|
enum AccountStatus {
|
|
option (gogoproto.goproto_enum_prefix) = false;
|
|
|
|
// Account is pending creation
|
|
ACCOUNT_STATUS_PENDING = 0;
|
|
|
|
// Account is active and ready
|
|
ACCOUNT_STATUS_ACTIVE = 1;
|
|
|
|
// Account is temporarily disabled
|
|
ACCOUNT_STATUS_DISABLED = 2;
|
|
|
|
// Account creation failed
|
|
ACCOUNT_STATUS_FAILED = 3;
|
|
}
|
|
|
|
// DEXFeatures defines available features for DEX accounts
|
|
enum DEXFeatures {
|
|
option (gogoproto.goproto_enum_prefix) = false;
|
|
|
|
// Basic swap functionality
|
|
DEX_FEATURE_SWAP = 0;
|
|
|
|
// Liquidity provision
|
|
DEX_FEATURE_LIQUIDITY = 1;
|
|
|
|
// Limit orders
|
|
DEX_FEATURE_ORDERS = 2;
|
|
|
|
// Staking operations
|
|
DEX_FEATURE_STAKING = 3;
|
|
|
|
// Governance participation
|
|
DEX_FEATURE_GOVERNANCE = 4;
|
|
}
|
|
|
|
// DEXActivity represents a DEX operation activity record
|
|
message DEXActivity {
|
|
// Type of activity (swap, provide_liquidity, remove_liquidity, create_order, cancel_order)
|
|
string type = 1;
|
|
|
|
// DID that performed the activity
|
|
string did = 2;
|
|
|
|
// Connection ID where the activity occurred
|
|
string connection_id = 3;
|
|
|
|
// Transaction hash of the activity
|
|
string tx_hash = 4;
|
|
|
|
// Block height when the activity occurred
|
|
int64 block_height = 5;
|
|
|
|
// Timestamp of the activity
|
|
google.protobuf.Timestamp timestamp = 6 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
|
|
|
|
// Activity-specific details (JSON encoded)
|
|
string details = 7;
|
|
|
|
// Status of the activity (pending, success, failed)
|
|
string status = 8;
|
|
|
|
// Amount involved in the activity (if applicable)
|
|
repeated cosmos.base.v1beta1.Coin amount = 9 [
|
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
|
|
(gogoproto.nullable) = false
|
|
];
|
|
|
|
// Gas used for the activity
|
|
uint64 gas_used = 10;
|
|
} |