Files
Prad NukalaandGitHub 13e6c3e84d Master (#1262)
* clear

* feat: Add everything

* fix: Commenht
2025-10-03 14:45:52 -04:00

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;
}