Skip to content

Commit a913e69

Browse files
amityadav099adarsh
andauthored
Enable limit close for perps (#1343)
* change key for perpetual order storage * update execution * fix tests * add hooks * add tests * update cancel orders * close percentage * add tests * remove checks * review changes * merge * fix * review changes * add events for ccxt * keep fields number * set id --------- Co-authored-by: Adarsh Kumar <itsadarshkumar@gmail.com>
1 parent f4c5518 commit a913e69

File tree

71 files changed

+4497
-1216
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+4497
-1216
lines changed

api/elys/tradeshield/query.pulsar.go

Lines changed: 355 additions & 216 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/elys/tradeshield/tx.pulsar.go

Lines changed: 2019 additions & 381 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/elys/tradeshield/types.pulsar.go

Lines changed: 163 additions & 104 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/keepers/keepers.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -832,6 +832,7 @@ func NewAppKeeper(
832832
// insert perpetual hooks receivers here
833833
app.AccountedPoolKeeper.PerpetualHooks(),
834834
app.TierKeeper.PerpetualHooks(),
835+
app.TradeshieldKeeper.PerpetualHooks(),
835836
),
836837
)
837838

proto/elys/tradeshield/query.proto

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import "google/api/annotations.proto";
77
import "cosmos/base/query/v1beta1/pagination.proto";
88
import "elys/tradeshield/params.proto";
99
import "elys/tradeshield/types.proto";
10+
import "cosmos_proto/cosmos.proto";
1011

1112
option go_package = "github.com/elys-network/elys/v6/x/tradeshield/types";
1213

@@ -34,7 +35,8 @@ service Query {
3435
rpc PendingPerpetualOrder(QueryGetPendingPerpetualOrderRequest)
3536
returns (QueryGetPendingPerpetualOrderResponse) {
3637
option (google.api.http).get =
37-
"/elys-network/elys/tradeshield/pending_perpetual_order/{id}";
38+
"/elys-network/elys/tradeshield/pending_perpetual_order/"
39+
"{owner_address}/{pool_id}/{order_id}";
3840
}
3941
rpc PendingPerpetualOrderAll(QueryAllPendingPerpetualOrderRequest)
4042
returns (QueryAllPendingPerpetualOrderResponse) {
@@ -83,7 +85,11 @@ message QueryAllPendingSpotOrderResponse {
8385
cosmos.base.query.v1beta1.PageResponse pagination = 2;
8486
}
8587

86-
message QueryGetPendingPerpetualOrderRequest { uint64 id = 1; }
88+
message QueryGetPendingPerpetualOrderRequest {
89+
string owner_address = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ];
90+
uint64 pool_id = 2;
91+
uint64 order_id = 3;
92+
}
8793

8894
message QueryGetPendingPerpetualOrderResponse {
8995
PerpetualOrderExtraInfo pending_perpetual_order = 1

proto/elys/tradeshield/tx.proto

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,14 @@ message MsgCreatePerpetualCloseOrder {
135135
string owner_address = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ];
136136
LegacyTriggerPriceV1 legacy_trigger_price_v1 = 2
137137
[ (gogoproto.nullable) = false ];
138+
uint64 position_id = 3;
138139
string trigger_price = 4 [
139140
(cosmos_proto.scalar) = "cosmos.Dec",
140141
(gogoproto.customtype) = "cosmossdk.io/math.LegacyDec",
141142
(gogoproto.nullable) = false
142143
];
143-
uint64 position_id = 3;
144+
uint64 pool_id = 5;
145+
uint64 close_percentage = 6;
144146
}
145147

146148
message MsgCreatePerpetualCloseOrderResponse { uint64 order_id = 1; }
@@ -157,6 +159,7 @@ message MsgUpdatePerpetualOrder {
157159
(gogoproto.customtype) = "cosmossdk.io/math.LegacyDec",
158160
(gogoproto.nullable) = false
159161
];
162+
uint64 pool_id = 5;
160163
}
161164

162165
message MsgUpdatePerpetualOrderResponse {}
@@ -166,6 +169,7 @@ message MsgCancelPerpetualOrder {
166169
option (amino.name) = "tradeshield/MsgCancelPerpetualOrder";
167170
string owner_address = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ];
168171
uint64 order_id = 2;
172+
uint64 pool_id = 3;
169173
}
170174

171175
message MsgCancelPerpetualOrderResponse { uint64 order_id = 1; }
@@ -174,7 +178,8 @@ message MsgCancelPerpetualOrders {
174178
option (cosmos.msg.v1.signer) = "owner_address";
175179
option (amino.name) = "tradeshield/MsgCancelPerpetualOrders";
176180
string owner_address = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ];
177-
repeated uint64 order_ids = 2;
181+
repeated uint64 legacy_order_ids = 2;
182+
repeated PerpetualOrderPoolKey orders = 3 [ (gogoproto.nullable) = false ];
178183
}
179184

180185
message MsgCancelPerpetualOrdersResponse {}
@@ -205,7 +210,20 @@ message MsgExecuteOrders {
205210
option (amino.name) = "tradeshield/MsgExecuteOrders";
206211
string creator = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ];
207212
repeated uint64 spot_order_ids = 2;
208-
repeated uint64 perpetual_order_ids = 3;
213+
repeated uint64 legacy_perpetual_order_ids = 3;
214+
repeated PerpetualOrderKey perpetual_orders = 4
215+
[ (gogoproto.nullable) = false ];
209216
}
210217

211218
message MsgExecuteOrdersResponse {}
219+
220+
message PerpetualOrderKey {
221+
string owner_address = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ];
222+
uint64 pool_id = 2;
223+
uint64 order_id = 3;
224+
}
225+
226+
message PerpetualOrderPoolKey {
227+
uint64 pool_id = 1;
228+
uint64 order_id = 2;
229+
}

proto/elys/tradeshield/types.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ message PerpetualOrder {
7474
(gogoproto.nullable) = false
7575
];
7676
uint64 poolId = 12;
77+
uint64 close_percentage = 13;
7778
}
7879

7980
message PerpetualOrderExtraInfo {

x/accountedpool/keeper/hooks_perpetual.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package keeper
22

33
import (
4+
math "cosmossdk.io/math"
45
sdk "github.com/cosmos/cosmos-sdk/types"
56
"github.com/elys-network/elys/v6/x/accountedpool/types"
67
ammtypes "github.com/elys-network/elys/v6/x/amm/types"
@@ -80,6 +81,6 @@ func (h PerpetualHooks) AfterPerpetualPositionModified(ctx sdk.Context, ammPool
8081
return h.k.PerpetualUpdates(ctx, ammPool, perpetualPool)
8182
}
8283

83-
func (h PerpetualHooks) AfterPerpetualPositionClosed(ctx sdk.Context, ammPool ammtypes.Pool, perpetualPool perpetualtypes.Pool, sender sdk.AccAddress) error {
84+
func (h PerpetualHooks) AfterPerpetualPositionClosed(ctx sdk.Context, ammPool ammtypes.Pool, perpetualPool perpetualtypes.Pool, sender sdk.AccAddress, closingRatio math.LegacyDec, positionId uint64) error {
8485
return h.k.PerpetualUpdates(ctx, ammPool, perpetualPool)
8586
}

x/accountedpool/types/query.pb.go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

x/accountedpool/types/tx.pb.go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)