From 0b1af690aa8f87ffb9185f45c5a431e0269005cc Mon Sep 17 00:00:00 2001 From: Troy Date: Thu, 29 Jun 2023 14:19:35 -0600 Subject: [PATCH 1/4] add sizeDelta to event --- markets/perps-market/contracts/interfaces/IAsyncOrderModule.sol | 1 + markets/perps-market/contracts/modules/AsyncOrderModule.sol | 2 ++ 2 files changed, 3 insertions(+) diff --git a/markets/perps-market/contracts/interfaces/IAsyncOrderModule.sol b/markets/perps-market/contracts/interfaces/IAsyncOrderModule.sol index 32cfee4eee..d3711683f8 100644 --- a/markets/perps-market/contracts/interfaces/IAsyncOrderModule.sol +++ b/markets/perps-market/contracts/interfaces/IAsyncOrderModule.sol @@ -25,6 +25,7 @@ interface IAsyncOrderModule { uint128 indexed accountId, uint256 fillPrice, int256 accountPnlRealized, + int128 sizeDelta, int128 newSize, uint256 collectedFees, uint256 settelementReward, diff --git a/markets/perps-market/contracts/modules/AsyncOrderModule.sol b/markets/perps-market/contracts/modules/AsyncOrderModule.sol index 65063ff294..ab386fb1ef 100644 --- a/markets/perps-market/contracts/modules/AsyncOrderModule.sol +++ b/markets/perps-market/contracts/modules/AsyncOrderModule.sol @@ -224,6 +224,7 @@ contract AsyncOrderModule is IAsyncOrderModule { // exctracted from asyncOrder before order is reset bytes32 trackingCode = asyncOrder.trackingCode; + int128 sizeDelta = asyncOrder.sizeDelta; asyncOrder.reset(); @@ -233,6 +234,7 @@ contract AsyncOrderModule is IAsyncOrderModule { runtime.accountId, fillPrice, runtime.pnl, + sizeDelta, runtime.newPositionSize, totalFees, runtime.settlementReward, From 5677491ed2a6ef2d2bc3c40fae71dd0aa8f9675a Mon Sep 17 00:00:00 2001 From: Troy Date: Thu, 29 Jun 2023 14:24:18 -0600 Subject: [PATCH 2/4] fix typo --- .../interfaces/IAsyncOrderModule.sol | 2 +- markets/spot-market/docs/index.md | 3 ++- protocol/oracle-manager/docs/index.md | 22 +------------------ 3 files changed, 4 insertions(+), 23 deletions(-) diff --git a/markets/perps-market/contracts/interfaces/IAsyncOrderModule.sol b/markets/perps-market/contracts/interfaces/IAsyncOrderModule.sol index d3711683f8..8a6b5800cc 100644 --- a/markets/perps-market/contracts/interfaces/IAsyncOrderModule.sol +++ b/markets/perps-market/contracts/interfaces/IAsyncOrderModule.sol @@ -28,7 +28,7 @@ interface IAsyncOrderModule { int128 sizeDelta, int128 newSize, uint256 collectedFees, - uint256 settelementReward, + uint256 settlementReward, bytes32 indexed trackingCode, address settler ); diff --git a/markets/spot-market/docs/index.md b/markets/spot-market/docs/index.md index f013bdcd76..dfaefdabd7 100644 --- a/markets/spot-market/docs/index.md +++ b/markets/spot-market/docs/index.md @@ -201,7 +201,7 @@ To determine the fee, the client should first call getUpdateFee() from Pyth's ve ### OrderSettled ```solidity - event OrderSettled(uint128 marketId, uint128 asyncOrderId, uint256 finalOrderAmount, struct OrderFees.Data fees, uint256 collectedFees, address settler, uint256 price) + event OrderSettled(uint128 marketId, uint128 asyncOrderId, uint256 finalOrderAmount, struct OrderFees.Data fees, uint256 collectedFees, address settler, uint256 price, enum Transaction.Type orderType) ``` Gets fired when an order is settled. @@ -214,6 +214,7 @@ To determine the fee, the client should first call getUpdateFee() from Pyth's ve * `collectedFees` (*uint256*) - fees collected by the configured fee collector. * `settler` (*address*) - address that settled the order. * `price` (*uint256*) - +* `orderType` (*enum Transaction.Type*) - ## Atomic Order Module diff --git a/protocol/oracle-manager/docs/index.md b/protocol/oracle-manager/docs/index.md index f353a169da..1917fae49d 100644 --- a/protocol/oracle-manager/docs/index.md +++ b/protocol/oracle-manager/docs/index.md @@ -35,7 +35,7 @@ ### getNode ```solidity - function getNode(bytes32 nodeId) external view returns (struct NodeDefinition.Data node) + function getNode(bytes32 nodeId) external pure returns (struct NodeDefinition.Data node) ``` Returns a node's definition (type, parameters, and parents) @@ -251,23 +251,3 @@ function isValid(struct NodeDefinition.Data nodeDefinition) internal view returns (bool valid) ``` -## Router - -### fallback - - ```solidity - fallback() external payable - ``` - -### receive - - ```solidity - receive() external payable - ``` - -### _forward - - ```solidity - function _forward() internal - ``` - From 081a06ffbfe786937a0736a77a02d92aca1d22ff Mon Sep 17 00:00:00 2001 From: Troy Date: Thu, 29 Jun 2023 14:29:11 -0600 Subject: [PATCH 3/4] rename id variable --- markets/perps-market/contracts/modules/AsyncOrderModule.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/markets/perps-market/contracts/modules/AsyncOrderModule.sol b/markets/perps-market/contracts/modules/AsyncOrderModule.sol index ab386fb1ef..488c31e6fe 100644 --- a/markets/perps-market/contracts/modules/AsyncOrderModule.sol +++ b/markets/perps-market/contracts/modules/AsyncOrderModule.sol @@ -97,11 +97,11 @@ contract AsyncOrderModule is IAsyncOrderModule { } function settlePythOrder(bytes calldata result, bytes calldata extraData) external payable { - (uint128 marketId, uint128 asyncOrderId) = abi.decode(extraData, (uint128, uint128)); + (uint128 marketId, uint128 accountId) = abi.decode(extraData, (uint128, uint128)); ( AsyncOrder.Data storage order, SettlementStrategy.Data storage settlementStrategy - ) = _performOrderValidityChecks(marketId, asyncOrderId); + ) = _performOrderValidityChecks(marketId, accountId); bytes32[] memory priceIds = new bytes32[](1); priceIds[0] = settlementStrategy.feedId; From d42307a52151737f1dc151dd130c5bba8290e498 Mon Sep 17 00:00:00 2001 From: Troy Date: Thu, 29 Jun 2023 17:15:32 -0600 Subject: [PATCH 4/4] add sizedelta to runtime --- .../perps-market/contracts/interfaces/IAsyncOrderModule.sol | 1 + markets/perps-market/contracts/modules/AsyncOrderModule.sol | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/markets/perps-market/contracts/interfaces/IAsyncOrderModule.sol b/markets/perps-market/contracts/interfaces/IAsyncOrderModule.sol index 8a6b5800cc..7afabaf78d 100644 --- a/markets/perps-market/contracts/interfaces/IAsyncOrderModule.sol +++ b/markets/perps-market/contracts/interfaces/IAsyncOrderModule.sol @@ -60,6 +60,7 @@ interface IAsyncOrderModule { struct SettleOrderRuntime { uint128 marketId; uint128 accountId; + int128 sizeDelta; int128 newPositionSize; int256 pnl; uint256 pnlUint; diff --git a/markets/perps-market/contracts/modules/AsyncOrderModule.sol b/markets/perps-market/contracts/modules/AsyncOrderModule.sol index 488c31e6fe..ab6e415b17 100644 --- a/markets/perps-market/contracts/modules/AsyncOrderModule.sol +++ b/markets/perps-market/contracts/modules/AsyncOrderModule.sol @@ -177,6 +177,7 @@ contract AsyncOrderModule is IAsyncOrderModule { runtime.accountId = asyncOrder.accountId; runtime.marketId = asyncOrder.marketId; + runtime.sizeDelta = asyncOrder.sizeDelta; // check if account is flagged GlobalPerpsMarket.load().checkLiquidation(runtime.accountId); @@ -224,7 +225,6 @@ contract AsyncOrderModule is IAsyncOrderModule { // exctracted from asyncOrder before order is reset bytes32 trackingCode = asyncOrder.trackingCode; - int128 sizeDelta = asyncOrder.sizeDelta; asyncOrder.reset(); @@ -234,7 +234,7 @@ contract AsyncOrderModule is IAsyncOrderModule { runtime.accountId, fillPrice, runtime.pnl, - sizeDelta, + runtime.sizeDelta, runtime.newPositionSize, totalFees, runtime.settlementReward,