# ITradingCommonUtils

*Interface for TradingCommonUtils library*

## TradePriceImpactInput

```solidity
struct TradePriceImpactInput {
  struct ITradingStorage.Trade trade;
  uint256 oraclePrice;
  uint256 spreadP;
  uint256 positionSizeCollateral;
}
```

## GovFeeCharged

```solidity
event GovFeeCharged(address trader, uint8 collateralIndex, uint256 amountCollateral)
```

*Emitted when gov fee is charged*

### Parameters

| Name             | Type    | Description                           |
| ---------------- | ------- | ------------------------------------- |
| trader           | address | address of the trader                 |
| collateralIndex  | uint8   | index of the collateral               |
| amountCollateral | uint256 | amount charged (collateral precision) |

## ReferralFeeCharged

```solidity
event ReferralFeeCharged(address trader, uint8 collateralIndex, uint256 amountCollateral)
```

*Emitted when referral fee is charged*

### Parameters

| Name             | Type    | Description                           |
| ---------------- | ------- | ------------------------------------- |
| trader           | address | address of the trader                 |
| collateralIndex  | uint8   | index of the collateral               |
| amountCollateral | uint256 | amount charged (collateral precision) |

## GnsOtcFeeCharged

```solidity
event GnsOtcFeeCharged(address trader, uint8 collateralIndex, uint256 amountCollateral)
```

*Emitted when GNS otc fee is charged*

### Parameters

| Name             | Type    | Description                           |
| ---------------- | ------- | ------------------------------------- |
| trader           | address | address of the trader                 |
| collateralIndex  | uint8   | index of the collateral               |
| amountCollateral | uint256 | amount charged (collateral precision) |

## TriggerFeeCharged

```solidity
event TriggerFeeCharged(address trader, uint8 collateralIndex, uint256 amountCollateral)
```

*Emitted when trigger fee is charged*

### Parameters

| Name             | Type    | Description                           |
| ---------------- | ------- | ------------------------------------- |
| trader           | address | address of the trader                 |
| collateralIndex  | uint8   | index of the collateral               |
| amountCollateral | uint256 | amount charged (collateral precision) |

## GTokenFeeCharged

```solidity
event GTokenFeeCharged(address trader, uint8 collateralIndex, uint256 amountCollateral)
```

*Emitted when gToken fee is charged*

### Parameters

| Name             | Type    | Description                           |
| ---------------- | ------- | ------------------------------------- |
| trader           | address | address of the trader                 |
| collateralIndex  | uint8   | index of the collateral               |
| amountCollateral | uint256 | amount charged (collateral precision) |
