-
Notifications
You must be signed in to change notification settings - Fork 52
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Tradeshield]: Design the Data Structures (#799)
* add spot order types * add perpetual order * fix * fix * update * add pending spot order * keys * add perpetual ds * update keys * add sorted perpetual order * remove sorted order * add spot sorted orders * add sorted tests * add more tests * add todo for other tasks * remove * fix * fix --------- Co-authored-by: Cosmic Vagabond <[email protected]>
- Loading branch information
1 parent
28e63c3
commit 8e31bdc
Showing
53 changed files
with
11,484 additions
and
241 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,19 @@ | ||
syntax = "proto3"; | ||
|
||
package elys.tradeshield; | ||
|
||
import "gogoproto/gogo.proto"; | ||
import "elys/tradeshield/params.proto"; | ||
import "elys/tradeshield/types.proto"; | ||
|
||
option go_package = "github.com/elys-network/elys/x/tradeshield/types"; | ||
|
||
// GenesisState defines the tradeshield module's genesis state. | ||
message GenesisState { | ||
Params params = 1 [(gogoproto.nullable) = false]; | ||
Params params = 1 [(gogoproto.nullable) = false]; | ||
repeated SpotOrder pendingSpotOrderList = 2 [(gogoproto.nullable) = false]; | ||
uint64 pendingSpotOrderCount = 3; | ||
repeated PerpetualOrder pendingPerpetualOrderList = 4 [(gogoproto.nullable) = false]; | ||
uint64 pendingPerpetualOrderCount = 5; | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,85 @@ | ||
syntax = "proto3"; | ||
|
||
package elys.tradeshield; | ||
|
||
import "gogoproto/gogo.proto"; | ||
import "google/api/annotations.proto"; | ||
import "cosmos/base/query/v1beta1/pagination.proto"; | ||
import "elys/tradeshield/params.proto"; | ||
import "elys/tradeshield/types.proto"; | ||
|
||
option go_package = "github.com/elys-network/elys/x/tradeshield/types"; | ||
|
||
// Query defines the gRPC querier service. | ||
service Query { | ||
|
||
// Parameters queries the parameters of the module. | ||
rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { | ||
rpc Params (QueryParamsRequest) returns (QueryParamsResponse) { | ||
option (google.api.http).get = "/elys-network/elys/tradeshield/params"; | ||
|
||
} | ||
|
||
// Queries a list of PendingSpotOrder items. | ||
rpc PendingSpotOrder (QueryGetPendingSpotOrderRequest) returns (QueryGetPendingSpotOrderResponse) { | ||
option (google.api.http).get = "/elys-network/elys/tradeshield/pending_spot_order/{id}"; | ||
|
||
} | ||
rpc PendingSpotOrderAll (QueryAllPendingSpotOrderRequest) returns (QueryAllPendingSpotOrderResponse) { | ||
option (google.api.http).get = "/elys-network/elys/tradeshield/pending_spot_order"; | ||
|
||
} | ||
|
||
// Queries a list of PendingPerpetualOrder items. | ||
rpc PendingPerpetualOrder (QueryGetPendingPerpetualOrderRequest) returns (QueryGetPendingPerpetualOrderResponse) { | ||
option (google.api.http).get = "/elys-network/elys/tradeshield/pending_perpetual_order/{id}"; | ||
|
||
} | ||
rpc PendingPerpetualOrderAll (QueryAllPendingPerpetualOrderRequest) returns (QueryAllPendingPerpetualOrderResponse) { | ||
option (google.api.http).get = "/elys-network/elys/tradeshield/pending_perpetual_order"; | ||
|
||
} | ||
} | ||
|
||
// QueryParamsRequest is request type for the Query/Params RPC method. | ||
message QueryParamsRequest {} | ||
|
||
// QueryParamsResponse is response type for the Query/Params RPC method. | ||
message QueryParamsResponse { | ||
|
||
// params holds all the parameters of this module. | ||
Params params = 1 [(gogoproto.nullable) = false]; | ||
} | ||
} | ||
|
||
message QueryGetPendingSpotOrderRequest { | ||
uint64 id = 1; | ||
} | ||
|
||
message QueryGetPendingSpotOrderResponse { | ||
SpotOrder PendingSpotOrder = 1 [(gogoproto.nullable) = false]; | ||
} | ||
|
||
message QueryAllPendingSpotOrderRequest { | ||
cosmos.base.query.v1beta1.PageRequest pagination = 1; | ||
} | ||
|
||
message QueryAllPendingSpotOrderResponse { | ||
repeated SpotOrder PendingSpotOrder = 1 [(gogoproto.nullable) = false]; | ||
cosmos.base.query.v1beta1.PageResponse pagination = 2; | ||
} | ||
|
||
message QueryGetPendingPerpetualOrderRequest { | ||
uint64 id = 1; | ||
} | ||
|
||
message QueryGetPendingPerpetualOrderResponse { | ||
PerpetualOrder PendingPerpetualOrder = 1 [(gogoproto.nullable) = false]; | ||
} | ||
|
||
message QueryAllPendingPerpetualOrderRequest { | ||
cosmos.base.query.v1beta1.PageRequest pagination = 1; | ||
} | ||
|
||
message QueryAllPendingPerpetualOrderResponse { | ||
repeated PerpetualOrder PendingPerpetualOrder = 1 [(gogoproto.nullable) = false]; | ||
cosmos.base.query.v1beta1.PageResponse pagination = 2; | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,71 @@ | ||
syntax = "proto3"; | ||
|
||
package elys.tradeshield; | ||
|
||
import "elys/tradeshield/types.proto"; | ||
import "cosmos/base/v1beta1/coin.proto"; | ||
|
||
option go_package = "github.com/elys-network/elys/x/tradeshield/types"; | ||
|
||
// Msg defines the Msg service. | ||
service Msg {} | ||
service Msg { | ||
rpc CreatePendingSpotOrder (MsgCreatePendingSpotOrder ) returns (MsgCreatePendingSpotOrderResponse ); | ||
rpc UpdatePendingSpotOrder (MsgUpdatePendingSpotOrder ) returns (MsgUpdatePendingSpotOrderResponse ); | ||
rpc DeletePendingSpotOrder (MsgDeletePendingSpotOrder ) returns (MsgDeletePendingSpotOrderResponse ); | ||
rpc CreatePendingPerpetualOrder (MsgCreatePendingPerpetualOrder) returns (MsgCreatePendingPerpetualOrderResponse); | ||
rpc UpdatePendingPerpetualOrder (MsgUpdatePendingPerpetualOrder) returns (MsgUpdatePendingPerpetualOrderResponse); | ||
rpc DeletePendingPerpetualOrder (MsgDeletePendingPerpetualOrder) returns (MsgDeletePendingPerpetualOrderResponse); | ||
} | ||
message MsgCreatePendingSpotOrder { | ||
SpotOrderType order_type = 1; | ||
OrderPrice order_price = 3; | ||
cosmos.base.v1beta1.Coin order_amount = 4; | ||
string owner_address = 5; | ||
string order_target_denom = 6; | ||
Status status = 7; | ||
Date date = 8; | ||
} | ||
|
||
message MsgCreatePendingSpotOrderResponse { | ||
uint64 id = 1; | ||
} | ||
|
||
message MsgUpdatePendingSpotOrder { | ||
string creator = 1; | ||
uint64 id = 2; | ||
string order = 3; | ||
} | ||
|
||
message MsgUpdatePendingSpotOrderResponse {} | ||
|
||
message MsgDeletePendingSpotOrder { | ||
string creator = 1; | ||
uint64 id = 2; | ||
} | ||
|
||
message MsgDeletePendingSpotOrderResponse {} | ||
|
||
message MsgCreatePendingPerpetualOrder { | ||
string creator = 1; | ||
string order = 2; | ||
} | ||
|
||
message MsgCreatePendingPerpetualOrderResponse { | ||
uint64 id = 1; | ||
} | ||
|
||
message MsgUpdatePendingPerpetualOrder { | ||
string creator = 1; | ||
uint64 id = 2; | ||
string order = 3; | ||
} | ||
|
||
message MsgUpdatePendingPerpetualOrderResponse {} | ||
|
||
message MsgDeletePendingPerpetualOrder { | ||
string creator = 1; | ||
uint64 id = 2; | ||
} | ||
|
||
message MsgDeletePendingPerpetualOrderResponse {} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
syntax = "proto3"; | ||
|
||
package elys.tradeshield; | ||
|
||
option go_package = "github.com/elys-network/elys/x/tradeshield/types"; | ||
|
||
import "gogoproto/gogo.proto"; | ||
import "cosmos/base/v1beta1/coin.proto"; | ||
|
||
// Spot order | ||
enum SpotOrderType { | ||
STOPLOSS = 0; | ||
LIMITSELL = 1; | ||
LIMITBUY = 2; | ||
MARKETBUY = 3; | ||
} | ||
|
||
enum Status { | ||
PENDING = 0; | ||
EXECUTED = 1; | ||
CANCLED = 2; | ||
} | ||
|
||
message OrderPrice { | ||
string base_denom = 1; | ||
string quote_denom = 2; | ||
string rate = 3 [ | ||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", | ||
(gogoproto.nullable) = false | ||
]; | ||
} | ||
|
||
message Date { | ||
uint64 height = 1; | ||
uint64 timestamp = 2; | ||
} | ||
|
||
message SpotOrder { | ||
SpotOrderType order_type = 1; | ||
uint64 order_id = 2; | ||
OrderPrice order_price = 3; | ||
cosmos.base.v1beta1.Coin order_amount = 4 [(gogoproto.nullable) = false]; | ||
string owner_address = 5; | ||
string order_target_denom = 6; | ||
Status status = 7; | ||
Date date = 8; | ||
} | ||
|
||
// Perpetual Order | ||
enum PerpetualOrderType { | ||
LIMITOPEN = 0; | ||
LIMITCLOSE = 1; | ||
|
||
MARKETOPEN = 2; | ||
MARKETCLOSE = 3; | ||
|
||
STOPLOSSPERP = 4; | ||
} | ||
|
||
enum PerpetualPosition { | ||
UNSPECIFIED = 0; | ||
LONG = 1; | ||
SHORT = 2; | ||
} | ||
|
||
message PerpetualOrder { | ||
uint64 order_id = 1; | ||
string owner_address = 2; | ||
PerpetualOrderType perpetual_order_type = 3; | ||
PerpetualPosition position = 4; | ||
OrderPrice trigger_price = 5; | ||
cosmos.base.v1beta1.Coin collateral = 6 [(gogoproto.nullable) = false]; | ||
string trading_asset = 7; | ||
string leverage = 8 [ | ||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", | ||
(gogoproto.nullable) = false | ||
]; | ||
string take_profit_price = 9 [ | ||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", | ||
(gogoproto.nullable) = false | ||
]; | ||
uint64 position_id = 10; | ||
Status status = 11; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -26,4 +26,4 @@ func (m Migrator) V12Migration(ctx sdk.Context) error { | |
} | ||
|
||
return nil | ||
} | ||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.