-
Notifications
You must be signed in to change notification settings - Fork 3
/
PerpsMarketProxy.readable.json
241 lines (241 loc) · 22.1 KB
/
PerpsMarketProxy.readable.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
[
"error FeatureUnavailable(bytes32 which)",
"error InvalidAccountId(uint128 accountId)",
"error InvalidPermission(bytes32 permission)",
"error OnlyAccountTokenProxy(address origin)",
"error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
"error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
"error PositionOutOfBounds()",
"error ValueAlreadyInSet()",
"error ValueNotInSet()",
"error ZeroAddress()",
"event AccountCreated(uint128 indexed accountId, address indexed owner)",
"event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
"event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
"function createAccount() returns (uint128 accountId)",
"function createAccount(uint128 requestedAccountId)",
"function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
"function getAccountOwner(uint128 accountId) view returns (address)",
"function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
"function getAccountTokenAddress() view returns (address)",
"function grantPermission(uint128 accountId, bytes32 permission, address user)",
"function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
"function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
"function notifyAccountTransfer(address to, uint128 accountId)",
"function renouncePermission(uint128 accountId, bytes32 permission)",
"function revokePermission(uint128 accountId, bytes32 permission, address user)",
"error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
"error MissingAssociatedSystem(bytes32 id)",
"error Unauthorized(address addr)",
"event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
"function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
"function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
"function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
"function registerUnmanagedSystem(bytes32 id, address endpoint)",
"error ImplementationIsSterile(address implementation)",
"error NoChange()",
"error NotAContract(address contr)",
"error NotNominated(address addr)",
"error UpgradeSimulationFailed()",
"event OwnerChanged(address oldOwner, address newOwner)",
"event OwnerNominated(address newOwner)",
"event Upgraded(address indexed self, address implementation)",
"function acceptOwnership()",
"function getImplementation() view returns (address)",
"function nominateNewOwner(address newNominatedOwner)",
"function nominatedOwner() view returns (address)",
"function owner() view returns (address)",
"function renounceNomination()",
"function simulateUpgradeTo(address newImplementation)",
"function upgradeTo(address newImplementation)",
"error InvalidMarket(uint128 marketId)",
"error InvalidParameter(string parameter, string reason)",
"error OverflowInt256ToUint256()",
"error OverflowUint256ToInt256()",
"error OverflowUint256ToUint128()",
"error PerpsMarketAlreadyInitialized()",
"error PerpsMarketNotInitialized()",
"event FactoryInitialized(uint128 globalPerpsMarketId)",
"event MarketCreated(uint128 indexed perpsMarketId, string marketName, string marketSymbol)",
"function createMarket(uint128 requestedMarketId, string marketName, string marketSymbol) returns (uint128)",
"function initializeFactory(address synthetix, address spotMarket) returns (uint128)",
"function interestRate() view returns (uint128)",
"function minimumCredit(uint128 perpsMarketId) view returns (uint256)",
"function name(uint128 perpsMarketId) view returns (string)",
"function reportedDebt(uint128 perpsMarketId) view returns (uint256)",
"function setPerpsMarketName(string marketName)",
"function supportsInterface(bytes4 interfaceId) view returns (bool)",
"function utilizationRate() view returns (uint256 rate, uint256 delegatedCollateral, uint256 lockedCredit)",
"error AccountLiquidatable(uint128 accountId)",
"error AccountNotFound(uint128 accountId)",
"error InsufficientCollateral(uint128 collateralId, uint256 collateralAmount, uint256 withdrawAmount)",
"error InsufficientCollateralAvailableForWithdraw(int256 withdrawableMarginUsd, uint256 requestedMarginUsd)",
"error InsufficientSynthCollateral(uint128 collateralId, uint256 collateralAmount, uint256 withdrawAmount)",
"error InvalidAmountDelta(int256 amountDelta)",
"error InvalidId(uint128 id)",
"error KeeperCostsNotSet()",
"error MaxCollateralExceeded(uint128 collateralId, uint256 maxAmount, uint256 collateralAmount, uint256 depositAmount)",
"error MaxCollateralsPerAccountReached(uint128 maxCollateralsPerAccount)",
"error NonexistentDebt(uint128 accountId)",
"error OverflowUint128ToInt128()",
"error PendingOrderExists()",
"error PriceFeedNotSet(uint128 marketId)",
"error SynthNotEnabledForCollateral(uint128 collateralId)",
"event CollateralModified(uint128 indexed accountId, uint128 indexed collateralId, int256 amountDelta, address indexed sender)",
"event DebtPaid(uint128 indexed accountId, uint256 amount, address indexed sender)",
"event InterestRateUpdated(uint128 indexed superMarketId, uint128 interestRate)",
"function debt(uint128 accountId) view returns (uint256 accountDebt)",
"function getAccountCollateralIds(uint128 accountId) view returns (uint256[])",
"function getAccountOpenPositions(uint128 accountId) view returns (uint256[])",
"function getAvailableMargin(uint128 accountId) view returns (int256 availableMargin)",
"function getCollateralAmount(uint128 accountId, uint128 collateralId) view returns (uint256)",
"function getOpenPosition(uint128 accountId, uint128 marketId) view returns (int256 totalPnl, int256 accruedFunding, int128 positionSize, uint256 owedInterest)",
"function getOpenPositionSize(uint128 accountId, uint128 marketId) view returns (int128 positionSize)",
"function getRequiredMargins(uint128 accountId) view returns (uint256 requiredInitialMargin, uint256 requiredMaintenanceMargin, uint256 maxLiquidationReward)",
"function getWithdrawableMargin(uint128 accountId) view returns (int256 withdrawableMargin)",
"function modifyCollateral(uint128 accountId, uint128 collateralId, int256 amountDelta)",
"function payDebt(uint128 accountId, uint256 amount)",
"function totalAccountOpenInterest(uint128 accountId) view returns (uint256)",
"function totalCollateralValue(uint128 accountId) view returns (uint256)",
"function currentFundingRate(uint128 marketId) view returns (int256)",
"function currentFundingVelocity(uint128 marketId) view returns (int256)",
"function fillPrice(uint128 marketId, int128 orderSize, uint256 price) view returns (uint256)",
"function getMarketSummary(uint128 marketId) view returns (tuple(int256 skew, uint256 size, uint256 maxOpenInterest, int256 currentFundingRate, int256 currentFundingVelocity, uint256 indexPrice) summary)",
"function indexPrice(uint128 marketId) view returns (uint256)",
"function maxOpenInterest(uint128 marketId) view returns (uint256)",
"function metadata(uint128 marketId) view returns (string name, string symbol)",
"function size(uint128 marketId) view returns (uint256)",
"function skew(uint128 marketId) view returns (int256)",
"error ExceedsMarketCreditCapacity(int256 delegatedCollateral, int256 newLockedCredit)",
"error InsufficientMargin(int256 availableMargin, uint256 minMargin)",
"error InvalidSettlementStrategy(uint256 settlementStrategyId)",
"error MaxOpenInterestReached(uint128 marketId, uint256 maxMarketSize, int256 newSideSize)",
"error MaxPositionsPerAccountReached(uint128 maxPositionsPerAccount)",
"error MaxUSDOpenInterestReached(uint128 marketId, uint256 maxMarketValue, int256 newSideSize, uint256 price)",
"error OverflowInt256ToInt128()",
"error ZeroSizeOrder()",
"event OrderCommitted(uint128 indexed marketId, uint128 indexed accountId, uint8 orderType, int128 sizeDelta, uint256 acceptablePrice, uint256 commitmentTime, uint256 expectedPriceTime, uint256 settlementTime, uint256 expirationTime, bytes32 indexed trackingCode, address sender)",
"event PreviousOrderExpired(uint128 indexed marketId, uint128 indexed accountId, int128 sizeDelta, uint256 acceptablePrice, uint256 commitmentTime, bytes32 indexed trackingCode)",
"function commitOrder(tuple(uint128 marketId, uint128 accountId, int128 sizeDelta, uint128 settlementStrategyId, uint256 acceptablePrice, bytes32 trackingCode, address referrer) commitment) returns (tuple(uint256 commitmentTime, tuple(uint128 marketId, uint128 accountId, int128 sizeDelta, uint128 settlementStrategyId, uint256 acceptablePrice, bytes32 trackingCode, address referrer) request) retOrder, uint256 fees)",
"function computeOrderFees(uint128 marketId, int128 sizeDelta) view returns (uint256 orderFees, uint256 fillPrice)",
"function computeOrderFeesWithPrice(uint128 marketId, int128 sizeDelta, uint256 price) view returns (uint256 orderFees, uint256 fillPrice)",
"function getOrder(uint128 accountId) view returns (tuple(uint256 commitmentTime, tuple(uint128 marketId, uint128 accountId, int128 sizeDelta, uint128 settlementStrategyId, uint256 acceptablePrice, bytes32 trackingCode, address referrer) request) order)",
"function getSettlementRewardCost(uint128 marketId, uint128 settlementStrategyId) view returns (uint256)",
"function requiredMarginForOrder(uint128 accountId, uint128 marketId, int128 sizeDelta) view returns (uint256 requiredMargin)",
"function requiredMarginForOrderWithPrice(uint128 accountId, uint128 marketId, int128 sizeDelta, uint256 price) view returns (uint256 requiredMargin)",
"error AcceptablePriceExceeded(uint256 fillPrice, uint256 acceptablePrice)",
"error OrderNotValid()",
"error OverflowInt128ToUint128()",
"error OverflowUint256ToUint64()",
"error SettlementStrategyNotFound(uint8 strategyType)",
"error SettlementWindowExpired(uint256 timestamp, uint256 settlementTime, uint256 settlementExpiration)",
"error SettlementWindowNotOpen(uint256 timestamp, uint256 settlementTime)",
"event AccountCharged(uint128 accountId, int256 amount, uint256 accountDebt)",
"event InterestCharged(uint128 indexed accountId, uint256 interest)",
"event MarketUpdated(uint128 marketId, uint256 price, int256 skew, uint256 size, int256 sizeDelta, int256 currentFundingRate, int256 currentFundingVelocity, uint128 interestRate)",
"event OrderSettled(uint128 indexed marketId, uint128 indexed accountId, uint256 fillPrice, int256 pnl, int256 accruedFunding, int128 sizeDelta, int128 newSize, uint256 totalFees, uint256 referralFees, uint256 collectedFees, uint256 settlementReward, bytes32 indexed trackingCode, address settler)",
"function settleOrder(uint128 accountId)",
"error AcceptablePriceNotExceeded(uint256 fillPrice, uint256 acceptablePrice)",
"event OrderCancelled(uint128 indexed marketId, uint128 indexed accountId, uint256 desiredPrice, uint256 fillPrice, int128 sizeDelta, uint256 settlementReward, bytes32 indexed trackingCode, address settler)",
"function cancelOrder(uint128 accountId)",
"event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
"event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
"event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
"event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
"event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
"function addToFeatureFlagAllowlist(bytes32 feature, address account)",
"function getDeniers(bytes32 feature) view returns (address[])",
"function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
"function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
"function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
"function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
"function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
"function setDeniers(bytes32 feature, address[] deniers)",
"function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
"function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)",
"error AccountHasOpenPositions(uint128 accountId)",
"error InvalidDistributor(uint128 id, address distributor)",
"error NotEligibleForLiquidation(uint128 accountId)",
"error NotEligibleForMarginLiquidation(uint128 accountId)",
"event AccountFlaggedForLiquidation(uint128 indexed accountId, int256 availableMargin, uint256 requiredMaintenanceMargin, uint256 liquidationReward, uint256 flagReward)",
"event AccountLiquidationAttempt(uint128 indexed accountId, uint256 reward, bool fullLiquidation)",
"event AccountMarginLiquidation(uint128 indexed accountId, uint256 seizedMarginValue, uint256 liquidationReward)",
"event PositionLiquidated(uint128 indexed accountId, uint128 indexed marketId, uint256 amountLiquidated, int128 currentPositionSize)",
"function canLiquidate(uint128 accountId) view returns (bool isEligible)",
"function canLiquidateMarginOnly(uint128 accountId) view returns (bool isEligible)",
"function flaggedAccounts() view returns (uint256[] accountIds)",
"function liquidate(uint128 accountId) returns (uint256 liquidationReward)",
"function liquidateFlagged(uint256 maxNumberOfAccounts) returns (uint256 liquidationReward)",
"function liquidateFlaggedAccounts(uint128[] accountIds) returns (uint256 liquidationReward)",
"function liquidateMarginOnly(uint128 accountId) returns (uint256 liquidationReward)",
"function liquidationCapacity(uint128 marketId) view returns (uint256 capacity, uint256 maxLiquidationInWindow, uint256 latestLiquidationTimestamp)",
"error InvalidSettlementWindowDuration(uint256 duration)",
"event FundingParametersSet(uint128 indexed marketId, uint256 skewScale, uint256 maxFundingVelocity)",
"event LiquidationParametersSet(uint128 indexed marketId, uint256 initialMarginRatioD18, uint256 maintenanceMarginRatioD18, uint256 minimumInitialMarginRatioD18, uint256 flagRewardRatioD18, uint256 minimumPositionMargin)",
"event LockedOiRatioSet(uint128 indexed marketId, uint256 lockedOiRatioD18)",
"event MarketPriceDataUpdated(uint128 indexed marketId, bytes32 feedId, uint256 strictStalenessTolerance)",
"event MaxLiquidationParametersSet(uint128 indexed marketId, uint256 maxLiquidationLimitAccumulationMultiplier, uint256 maxSecondsInLiquidationWindow, uint256 maxLiquidationPd, address endorsedLiquidator)",
"event MaxMarketSizeSet(uint128 indexed marketId, uint256 maxMarketSize)",
"event MaxMarketValueSet(uint128 indexed marketId, uint256 maxMarketValue)",
"event OrderFeesSet(uint128 indexed marketId, uint256 makerFeeRatio, uint256 takerFeeRatio)",
"event SettlementStrategyAdded(uint128 indexed marketId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, uint256 settlementReward, bool disabled, uint256 commitmentPriceDelay) strategy, uint256 indexed strategyId)",
"event SettlementStrategySet(uint128 indexed marketId, uint256 indexed strategyId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, uint256 settlementReward, bool disabled, uint256 commitmentPriceDelay) strategy)",
"function addSettlementStrategy(uint128 marketId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, uint256 settlementReward, bool disabled, uint256 commitmentPriceDelay) strategy) returns (uint256 strategyId)",
"function getFundingParameters(uint128 marketId) view returns (uint256 skewScale, uint256 maxFundingVelocity)",
"function getLiquidationParameters(uint128 marketId) view returns (uint256 initialMarginRatioD18, uint256 minimumInitialMarginRatioD18, uint256 maintenanceMarginScalarD18, uint256 flagRewardRatioD18, uint256 minimumPositionMargin)",
"function getLockedOiRatio(uint128 marketId) view returns (uint256)",
"function getMaxLiquidationParameters(uint128 marketId) view returns (uint256 maxLiquidationLimitAccumulationMultiplier, uint256 maxSecondsInLiquidationWindow, uint256 maxLiquidationPd, address endorsedLiquidator)",
"function getMaxMarketSize(uint128 marketId) view returns (uint256 maxMarketSize)",
"function getMaxMarketValue(uint128 marketId) view returns (uint256 maxMarketValue)",
"function getOrderFees(uint128 marketId) view returns (uint256 makerFee, uint256 takerFee)",
"function getPriceData(uint128 perpsMarketId) view returns (bytes32 feedId, uint256 strictStalenessTolerance)",
"function getSettlementStrategy(uint128 marketId, uint256 strategyId) view returns (tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, uint256 settlementReward, bool disabled, uint256 commitmentPriceDelay) settlementStrategy)",
"function setFundingParameters(uint128 marketId, uint256 skewScale, uint256 maxFundingVelocity)",
"function setLiquidationParameters(uint128 marketId, uint256 initialMarginRatioD18, uint256 minimumInitialMarginRatioD18, uint256 maintenanceMarginScalarD18, uint256 flagRewardRatioD18, uint256 minimumPositionMargin)",
"function setLockedOiRatio(uint128 marketId, uint256 lockedOiRatioD18)",
"function setMaxLiquidationParameters(uint128 marketId, uint256 maxLiquidationLimitAccumulationMultiplier, uint256 maxSecondsInLiquidationWindow, uint256 maxLiquidationPd, address endorsedLiquidator)",
"function setMaxMarketSize(uint128 marketId, uint256 maxMarketSize)",
"function setMaxMarketValue(uint128 marketId, uint256 maxMarketValue)",
"function setOrderFees(uint128 marketId, uint256 makerFeeRatio, uint256 takerFeeRatio)",
"function setSettlementStrategy(uint128 marketId, uint256 strategyId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, uint256 settlementReward, bool disabled, uint256 commitmentPriceDelay) strategy)",
"function setSettlementStrategyEnabled(uint128 marketId, uint256 strategyId, bool enabled)",
"function updatePriceData(uint128 perpsMarketId, bytes32 feedId, uint256 strictStalenessTolerance)",
"error InvalidDistributorContract(address distributor)",
"event CollateralConfigurationSet(uint128 indexed collateralId, uint256 maxCollateralAmount, uint256 upperLimitDiscount, uint256 lowerLimitDiscount, uint256 discountScalar)",
"event CollateralLiquidateRewardRatioSet(uint128 collateralLiquidateRewardRatioD18)",
"event RewardDistributorRegistered(address distributor)",
"function getCollateralConfiguration(uint128 collateralId) view returns (uint256 maxCollateralAmount)",
"function getCollateralConfigurationFull(uint128 collateralId) view returns (uint256 maxCollateralAmount, uint256 upperLimitDiscount, uint256 lowerLimitDiscount, uint256 discountScalar)",
"function getCollateralLiquidateRewardRatio() view returns (uint128 collateralLiquidateRewardRatioD18)",
"function getRegisteredDistributor(uint128 collateralId) view returns (address distributor, address[] poolDelegatedCollateralTypes)",
"function isRegistered(address distributor) view returns (bool)",
"function registerDistributor(address token, address distributor, uint128 collateralId, address[] poolDelegatedCollateralTypes)",
"function setCollateralConfiguration(uint128 collateralId, uint256 maxCollateralAmount, uint256 upperLimitDiscount, uint256 lowerLimitDiscount, uint256 discountScalar)",
"function setCollateralLiquidateRewardRatio(uint128 collateralLiquidateRewardRatioD18)",
"error InvalidFeeCollectorInterface(address invalidFeeCollector)",
"error InvalidInterestRateParameters(uint128 lowUtilizationInterestRateGradient, uint128 highUtilizationInterestRateGradient)",
"error InvalidReferrerShareRatio(uint256 shareRatioD18)",
"event FeeCollectorSet(address feeCollector)",
"event InterestRateParametersSet(uint256 lowUtilizationInterestRateGradient, uint256 interestRateGradientBreakpoint, uint256 highUtilizationInterestRateGradient)",
"event KeeperCostNodeIdUpdated(bytes32 keeperCostNodeId)",
"event KeeperRewardGuardsSet(uint256 minKeeperRewardUsd, uint256 minKeeperProfitRatioD18, uint256 maxKeeperRewardUsd, uint256 maxKeeperScalingRatioD18)",
"event PerAccountCapsSet(uint128 maxPositionsPerAccount, uint128 maxCollateralsPerAccount)",
"event ReferrerShareUpdated(address referrer, uint256 shareRatioD18)",
"function getFeeCollector() view returns (address feeCollector)",
"function getInterestRateParameters() view returns (uint128 lowUtilizationInterestRateGradient, uint128 interestRateGradientBreakpoint, uint128 highUtilizationInterestRateGradient)",
"function getKeeperCostNodeId() view returns (bytes32 keeperCostNodeId)",
"function getKeeperRewardGuards() view returns (uint256 minKeeperRewardUsd, uint256 minKeeperProfitRatioD18, uint256 maxKeeperRewardUsd, uint256 maxKeeperScalingRatioD18)",
"function getMarkets() view returns (uint256[] marketIds)",
"function getPerAccountCaps() view returns (uint128 maxPositionsPerAccount, uint128 maxCollateralsPerAccount)",
"function getReferrerShare(address referrer) view returns (uint256 shareRatioD18)",
"function getSupportedCollaterals() view returns (uint256[] supportedCollaterals)",
"function globalCollateralValue(uint128 collateralId) view returns (uint256 collateralValue)",
"function setFeeCollector(address feeCollector)",
"function setInterestRateParameters(uint128 lowUtilizationInterestRateGradient, uint128 interestRateGradientBreakpoint, uint128 highUtilizationInterestRateGradient)",
"function setKeeperRewardGuards(uint256 minKeeperRewardUsd, uint256 minKeeperProfitRatioD18, uint256 maxKeeperRewardUsd, uint256 maxKeeperScalingRatioD18)",
"function setPerAccountCaps(uint128 maxPositionsPerAccount, uint128 maxCollateralsPerAccount)",
"function totalGlobalCollateralValue() view returns (uint256 totalCollateralValue)",
"function updateInterestRate()",
"function updateKeeperCostNodeId(bytes32 keeperCostNodeId)",
"function updateReferrerShare(address referrer, uint256 shareRatioD18)"
]