mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-04 18:31:41 +00:00
@@ -0,0 +1,113 @@
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user