2023-02-21 23:36:59 -08:00
|
|
|
import { BN } from '@coral-xyz/anchor';
|
2023-01-14 05:09:26 -08:00
|
|
|
import { PublicKey } from '@solana/web3.js';
|
|
|
|
import { InterestRateParams, OracleConfigParams } from './types';
|
|
|
|
|
2023-08-09 04:55:53 -07:00
|
|
|
export interface TokenRegisterParams {
|
|
|
|
oracleConfig: OracleConfigParams;
|
|
|
|
groupInsuranceFund: boolean;
|
|
|
|
interestRateParams: InterestRateParams;
|
|
|
|
loanFeeRate: number;
|
|
|
|
loanOriginationFeeRate: number;
|
|
|
|
maintAssetWeight: number;
|
|
|
|
initAssetWeight: number;
|
|
|
|
maintLiabWeight: number;
|
|
|
|
initLiabWeight: number;
|
|
|
|
liquidationFee: number;
|
|
|
|
stablePriceDelayIntervalSeconds: number;
|
|
|
|
stablePriceDelayGrowthLimit: number;
|
|
|
|
stablePriceGrowthLimit: number;
|
|
|
|
minVaultToDepositsRatio: number;
|
|
|
|
netBorrowLimitPerWindowQuote: number;
|
|
|
|
netBorrowLimitWindowSizeTs: number;
|
|
|
|
borrowWeightScaleStartQuote: number;
|
|
|
|
depositWeightScaleStartQuote: number;
|
|
|
|
reduceOnly: number;
|
|
|
|
tokenConditionalSwapTakerFeeRate: number;
|
|
|
|
tokenConditionalSwapMakerFeeRate: number;
|
2023-10-13 00:02:23 -07:00
|
|
|
flashLoanSwapFeeRate: number;
|
2023-10-17 04:14:07 -07:00
|
|
|
interestCurveScaling: number;
|
|
|
|
interestTargetUtilization: number;
|
2023-12-05 06:43:38 -08:00
|
|
|
depositLimit: BN;
|
2023-08-09 04:55:53 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
export const DefaultTokenRegisterParams: TokenRegisterParams = {
|
|
|
|
oracleConfig: {
|
|
|
|
confFilter: 0,
|
|
|
|
maxStalenessSlots: null,
|
|
|
|
},
|
|
|
|
groupInsuranceFund: false,
|
|
|
|
interestRateParams: {
|
|
|
|
util0: 0.5,
|
2023-10-17 04:14:07 -07:00
|
|
|
rate0: 0.018,
|
2023-08-09 04:55:53 -07:00
|
|
|
util1: 0.8,
|
2023-10-17 04:14:07 -07:00
|
|
|
rate1: 0.05,
|
|
|
|
maxRate: 0.5,
|
2023-08-09 04:55:53 -07:00
|
|
|
adjustmentFactor: 0.004,
|
|
|
|
},
|
|
|
|
loanFeeRate: 0.0005,
|
2024-02-16 02:26:12 -08:00
|
|
|
loanOriginationFeeRate: 0.0075,
|
2023-08-09 04:55:53 -07:00
|
|
|
maintAssetWeight: 0,
|
|
|
|
initAssetWeight: 0,
|
|
|
|
maintLiabWeight: 1.4,
|
|
|
|
initLiabWeight: 1.8,
|
|
|
|
liquidationFee: 0.2,
|
|
|
|
stablePriceDelayIntervalSeconds: 60 * 60,
|
|
|
|
stablePriceDelayGrowthLimit: 0.06,
|
|
|
|
stablePriceGrowthLimit: 0.0003,
|
|
|
|
minVaultToDepositsRatio: 0.2,
|
|
|
|
netBorrowLimitPerWindowQuote: 5_000_000_000,
|
|
|
|
netBorrowLimitWindowSizeTs: 86_400,
|
|
|
|
borrowWeightScaleStartQuote: 5_000_000_000,
|
|
|
|
depositWeightScaleStartQuote: 5_000_000_000,
|
|
|
|
reduceOnly: 0,
|
|
|
|
tokenConditionalSwapTakerFeeRate: 0.0005,
|
|
|
|
tokenConditionalSwapMakerFeeRate: 0.0005,
|
2023-10-13 00:02:23 -07:00
|
|
|
flashLoanSwapFeeRate: 0.0005,
|
2023-10-17 04:14:07 -07:00
|
|
|
interestCurveScaling: 4.0,
|
|
|
|
interestTargetUtilization: 0.5,
|
2023-12-05 06:43:38 -08:00
|
|
|
depositLimit: new BN(0),
|
2023-08-09 04:55:53 -07:00
|
|
|
};
|
|
|
|
|
2023-01-14 05:09:26 -08:00
|
|
|
export interface TokenEditParams {
|
|
|
|
oracle: PublicKey | null;
|
|
|
|
oracleConfig: OracleConfigParams | null;
|
|
|
|
groupInsuranceFund: boolean | null;
|
|
|
|
interestRateParams: InterestRateParams | null;
|
|
|
|
loanFeeRate: number | null;
|
|
|
|
loanOriginationFeeRate: number | null;
|
|
|
|
maintAssetWeight: number | null;
|
|
|
|
initAssetWeight: number | null;
|
|
|
|
maintLiabWeight: number | null;
|
|
|
|
initLiabWeight: number | null;
|
|
|
|
liquidationFee: number | null;
|
|
|
|
stablePriceDelayIntervalSeconds: number | null;
|
|
|
|
stablePriceDelayGrowthLimit: number | null;
|
|
|
|
stablePriceGrowthLimit: number | null;
|
|
|
|
minVaultToDepositsRatio: number | null;
|
|
|
|
netBorrowLimitPerWindowQuote: number | null;
|
|
|
|
netBorrowLimitWindowSizeTs: number | null;
|
|
|
|
borrowWeightScaleStartQuote: number | null;
|
|
|
|
depositWeightScaleStartQuote: number | null;
|
|
|
|
resetStablePrice: boolean | null;
|
|
|
|
resetNetBorrowLimit: boolean | null;
|
2023-04-13 03:44:12 -07:00
|
|
|
reduceOnly: number | null;
|
2023-03-03 01:05:12 -08:00
|
|
|
name: string | null;
|
2023-04-13 03:44:12 -07:00
|
|
|
forceClose: boolean | null;
|
2023-08-08 01:21:13 -07:00
|
|
|
tokenConditionalSwapTakerFeeRate: number | null;
|
|
|
|
tokenConditionalSwapMakerFeeRate: number | null;
|
2023-10-13 00:02:23 -07:00
|
|
|
flashLoanSwapFeeRate: number | null;
|
2023-10-17 04:14:07 -07:00
|
|
|
interestCurveScaling: number | null;
|
|
|
|
interestTargetUtilization: number | null;
|
2023-11-14 05:52:04 -08:00
|
|
|
maintWeightShiftStart: BN | null;
|
|
|
|
maintWeightShiftEnd: BN | null;
|
|
|
|
maintWeightShiftAssetTarget: number | null;
|
|
|
|
maintWeightShiftLiabTarget: number | null;
|
|
|
|
maintWeightShiftAbort: boolean | null;
|
2023-12-05 06:43:38 -08:00
|
|
|
depositLimit: BN | null;
|
2023-01-14 05:09:26 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
export const NullTokenEditParams: TokenEditParams = {
|
|
|
|
oracle: null,
|
|
|
|
oracleConfig: null,
|
|
|
|
groupInsuranceFund: null,
|
|
|
|
interestRateParams: null,
|
|
|
|
loanFeeRate: null,
|
|
|
|
loanOriginationFeeRate: null,
|
|
|
|
maintAssetWeight: null,
|
|
|
|
initAssetWeight: null,
|
|
|
|
maintLiabWeight: null,
|
|
|
|
initLiabWeight: null,
|
|
|
|
liquidationFee: null,
|
|
|
|
stablePriceDelayIntervalSeconds: null,
|
|
|
|
stablePriceDelayGrowthLimit: null,
|
|
|
|
stablePriceGrowthLimit: null,
|
|
|
|
minVaultToDepositsRatio: null,
|
|
|
|
netBorrowLimitPerWindowQuote: null,
|
|
|
|
netBorrowLimitWindowSizeTs: null,
|
|
|
|
borrowWeightScaleStartQuote: null,
|
|
|
|
depositWeightScaleStartQuote: null,
|
|
|
|
resetStablePrice: null,
|
|
|
|
resetNetBorrowLimit: null,
|
|
|
|
reduceOnly: null,
|
2023-03-03 01:05:12 -08:00
|
|
|
name: null,
|
2023-04-13 03:44:12 -07:00
|
|
|
forceClose: null,
|
2023-08-08 01:21:13 -07:00
|
|
|
tokenConditionalSwapTakerFeeRate: null,
|
|
|
|
tokenConditionalSwapMakerFeeRate: null,
|
2023-10-13 00:02:23 -07:00
|
|
|
flashLoanSwapFeeRate: null,
|
2023-10-17 04:14:07 -07:00
|
|
|
interestCurveScaling: null,
|
|
|
|
interestTargetUtilization: null,
|
2023-11-14 05:52:04 -08:00
|
|
|
maintWeightShiftStart: null,
|
|
|
|
maintWeightShiftEnd: null,
|
|
|
|
maintWeightShiftAssetTarget: null,
|
|
|
|
maintWeightShiftLiabTarget: null,
|
|
|
|
maintWeightShiftAbort: null,
|
2023-12-05 06:43:38 -08:00
|
|
|
depositLimit: null,
|
2023-01-14 05:09:26 -08:00
|
|
|
};
|
|
|
|
|
|
|
|
export interface PerpEditParams {
|
|
|
|
oracle: PublicKey | null;
|
|
|
|
oracleConfig: OracleConfigParams | null;
|
|
|
|
baseDecimals: number | null;
|
2023-01-16 07:49:09 -08:00
|
|
|
maintBaseAssetWeight: number | null;
|
|
|
|
initBaseAssetWeight: number | null;
|
|
|
|
maintBaseLiabWeight: number | null;
|
|
|
|
initBaseLiabWeight: number | null;
|
2023-02-01 07:15:45 -08:00
|
|
|
maintOverallAssetWeight: number | null;
|
|
|
|
initOverallAssetWeight: number | null;
|
2023-02-02 00:00:37 -08:00
|
|
|
baseLiquidationFee: number | null;
|
2023-01-14 05:09:26 -08:00
|
|
|
makerFee: number | null;
|
|
|
|
takerFee: number | null;
|
|
|
|
feePenalty: number | null;
|
|
|
|
minFunding: number | null;
|
|
|
|
maxFunding: number | null;
|
|
|
|
impactQuantity: number | null;
|
|
|
|
groupInsuranceFund: boolean | null;
|
|
|
|
settleFeeFlat: number | null;
|
|
|
|
settleFeeAmountThreshold: number | null;
|
|
|
|
settleFeeFractionLowHealth: number | null;
|
|
|
|
stablePriceDelayIntervalSeconds: number | null;
|
|
|
|
stablePriceDelayGrowthLimit: number | null;
|
|
|
|
stablePriceGrowthLimit: number | null;
|
|
|
|
settlePnlLimitFactor: number | null;
|
|
|
|
settlePnlLimitWindowSize: number | null;
|
|
|
|
reduceOnly: boolean | null;
|
2023-01-18 04:27:45 -08:00
|
|
|
resetStablePrice: boolean | null;
|
2023-02-02 00:00:37 -08:00
|
|
|
positivePnlLiquidationFee: number | null;
|
2023-03-03 01:05:12 -08:00
|
|
|
name: string | null;
|
2023-04-19 08:42:01 -07:00
|
|
|
forceClose: boolean | null;
|
2023-01-14 05:09:26 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
export const NullPerpEditParams: PerpEditParams = {
|
|
|
|
oracle: null,
|
|
|
|
oracleConfig: null,
|
|
|
|
baseDecimals: null,
|
2023-01-16 07:49:09 -08:00
|
|
|
maintBaseAssetWeight: null,
|
|
|
|
initBaseAssetWeight: null,
|
|
|
|
maintBaseLiabWeight: null,
|
|
|
|
initBaseLiabWeight: null,
|
2023-02-01 07:15:45 -08:00
|
|
|
maintOverallAssetWeight: null,
|
|
|
|
initOverallAssetWeight: null,
|
2023-02-02 00:00:37 -08:00
|
|
|
baseLiquidationFee: null,
|
2023-01-14 05:09:26 -08:00
|
|
|
makerFee: null,
|
|
|
|
takerFee: null,
|
|
|
|
feePenalty: null,
|
|
|
|
minFunding: null,
|
|
|
|
maxFunding: null,
|
|
|
|
impactQuantity: null,
|
|
|
|
groupInsuranceFund: null,
|
|
|
|
settleFeeFlat: null,
|
|
|
|
settleFeeAmountThreshold: null,
|
|
|
|
settleFeeFractionLowHealth: null,
|
|
|
|
stablePriceDelayIntervalSeconds: null,
|
|
|
|
stablePriceDelayGrowthLimit: null,
|
|
|
|
stablePriceGrowthLimit: null,
|
|
|
|
settlePnlLimitFactor: null,
|
|
|
|
settlePnlLimitWindowSize: null,
|
|
|
|
reduceOnly: null,
|
2023-01-18 04:27:45 -08:00
|
|
|
resetStablePrice: null,
|
2023-02-02 00:00:37 -08:00
|
|
|
positivePnlLiquidationFee: null,
|
2023-03-03 01:05:12 -08:00
|
|
|
name: null,
|
2023-04-19 08:42:01 -07:00
|
|
|
forceClose: null,
|
2023-01-14 05:09:26 -08:00
|
|
|
};
|
2023-01-26 11:27:39 -08:00
|
|
|
|
|
|
|
// Use with TrueIxGateParams and buildIxGate
|
|
|
|
export interface IxGateParams {
|
|
|
|
AccountClose: boolean;
|
|
|
|
AccountCreate: boolean;
|
|
|
|
AccountEdit: boolean;
|
|
|
|
AccountExpand: boolean;
|
|
|
|
AccountToggleFreeze: boolean;
|
|
|
|
AltExtend: boolean;
|
|
|
|
AltSet: boolean;
|
|
|
|
FlashLoan: boolean;
|
|
|
|
GroupClose: boolean;
|
|
|
|
GroupCreate: boolean;
|
|
|
|
GroupToggleHalt: boolean;
|
|
|
|
HealthRegion: boolean;
|
|
|
|
PerpCancelAllOrders: boolean;
|
|
|
|
PerpCancelAllOrdersBySide: boolean;
|
|
|
|
PerpCancelOrder: boolean;
|
|
|
|
PerpCancelOrderByClientOrderId: boolean;
|
|
|
|
PerpCloseMarket: boolean;
|
|
|
|
PerpConsumeEvents: boolean;
|
|
|
|
PerpCreateMarket: boolean;
|
|
|
|
PerpDeactivatePosition: boolean;
|
|
|
|
PerpEditMarket: boolean;
|
2023-02-02 00:00:37 -08:00
|
|
|
PerpLiqBaseOrPositivePnl: boolean;
|
2023-01-26 11:27:39 -08:00
|
|
|
PerpLiqForceCancelOrders: boolean;
|
2023-02-02 00:00:37 -08:00
|
|
|
PerpLiqNegativePnlOrBankruptcy: boolean;
|
2023-01-26 11:27:39 -08:00
|
|
|
PerpPlaceOrder: boolean;
|
|
|
|
PerpSettleFees: boolean;
|
|
|
|
PerpSettlePnl: boolean;
|
|
|
|
PerpUpdateFunding: boolean;
|
|
|
|
Serum3CancelAllOrders: boolean;
|
|
|
|
Serum3CancelOrder: boolean;
|
|
|
|
Serum3CloseOpenOrders: boolean;
|
|
|
|
Serum3CreateOpenOrders: boolean;
|
|
|
|
Serum3DeregisterMarket: boolean;
|
|
|
|
Serum3EditMarket: boolean;
|
|
|
|
Serum3LiqForceCancelOrders: boolean;
|
|
|
|
Serum3PlaceOrder: boolean;
|
|
|
|
Serum3RegisterMarket: boolean;
|
|
|
|
Serum3SettleFunds: boolean;
|
|
|
|
StubOracleClose: boolean;
|
|
|
|
StubOracleCreate: boolean;
|
|
|
|
StubOracleSet: boolean;
|
|
|
|
TokenAddBank: boolean;
|
|
|
|
TokenDeposit: boolean;
|
|
|
|
TokenDeregister: boolean;
|
|
|
|
TokenEdit: boolean;
|
|
|
|
TokenLiqBankruptcy: boolean;
|
|
|
|
TokenLiqWithToken: boolean;
|
|
|
|
TokenRegister: boolean;
|
|
|
|
TokenRegisterTrustless: boolean;
|
|
|
|
TokenUpdateIndexAndRate: boolean;
|
|
|
|
TokenWithdraw: boolean;
|
2023-03-18 02:56:18 -07:00
|
|
|
AccountBuybackFeesWithMngo: boolean;
|
2023-04-13 03:44:12 -07:00
|
|
|
TokenForceCloseBorrowsWithToken: boolean;
|
2023-04-19 08:42:01 -07:00
|
|
|
PerpForceClosePosition: boolean;
|
2023-04-25 01:14:38 -07:00
|
|
|
GroupWithdrawInsuranceFund: boolean;
|
2023-07-03 05:09:11 -07:00
|
|
|
TokenConditionalSwapCreate: boolean;
|
|
|
|
TokenConditionalSwapTrigger: boolean;
|
|
|
|
TokenConditionalSwapCancel: boolean;
|
2023-07-13 09:22:35 -07:00
|
|
|
OpenbookV2CancelOrder: boolean;
|
|
|
|
OpenbookV2CloseOpenOrders: boolean;
|
|
|
|
OpenbookV2CreateOpenOrders: boolean;
|
|
|
|
OpenbookV2DeregisterMarket: boolean;
|
|
|
|
OpenbookV2EditMarket: boolean;
|
|
|
|
OpenbookV2LiqForceCancelOrders: boolean;
|
|
|
|
OpenbookV2PlaceOrder: boolean;
|
|
|
|
OpenbookV2PlaceTakeOrder: boolean;
|
|
|
|
OpenbookV2RegisterMarket: boolean;
|
|
|
|
OpenbookV2SettleFunds: boolean;
|
|
|
|
AdminTokenWithdrawFees: boolean;
|
|
|
|
AdminPerpWithdrawFees: boolean;
|
2023-09-04 00:30:57 -07:00
|
|
|
AccountSizeMigration: boolean;
|
2023-10-07 12:27:19 -07:00
|
|
|
TokenConditionalSwapStart: boolean;
|
2023-10-11 06:19:53 -07:00
|
|
|
TokenConditionalSwapCreatePremiumAuction: boolean;
|
|
|
|
TokenConditionalSwapCreateLinearAuction: boolean;
|
2023-12-05 06:39:24 -08:00
|
|
|
Serum3PlaceOrderV2: boolean;
|
2023-01-26 11:27:39 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
// Default with all ixs enabled, use with buildIxGate
|
|
|
|
export const TrueIxGateParams: IxGateParams = {
|
|
|
|
AccountClose: true,
|
|
|
|
AccountCreate: true,
|
|
|
|
AccountEdit: true,
|
|
|
|
AccountExpand: true,
|
|
|
|
AccountToggleFreeze: true,
|
|
|
|
AltExtend: true,
|
|
|
|
AltSet: true,
|
|
|
|
FlashLoan: true,
|
|
|
|
GroupClose: true,
|
|
|
|
GroupCreate: true,
|
|
|
|
GroupToggleHalt: true,
|
|
|
|
HealthRegion: true,
|
|
|
|
PerpCancelAllOrders: true,
|
|
|
|
PerpCancelAllOrdersBySide: true,
|
|
|
|
PerpCancelOrder: true,
|
|
|
|
PerpCancelOrderByClientOrderId: true,
|
|
|
|
PerpCloseMarket: true,
|
|
|
|
PerpConsumeEvents: true,
|
|
|
|
PerpCreateMarket: true,
|
|
|
|
PerpDeactivatePosition: true,
|
|
|
|
PerpEditMarket: true,
|
2023-02-02 00:00:37 -08:00
|
|
|
PerpLiqBaseOrPositivePnl: true,
|
2023-01-26 11:27:39 -08:00
|
|
|
PerpLiqForceCancelOrders: true,
|
2023-02-02 00:00:37 -08:00
|
|
|
PerpLiqNegativePnlOrBankruptcy: true,
|
2023-01-26 11:27:39 -08:00
|
|
|
PerpPlaceOrder: true,
|
|
|
|
PerpSettleFees: true,
|
|
|
|
PerpSettlePnl: true,
|
|
|
|
PerpUpdateFunding: true,
|
|
|
|
Serum3CancelAllOrders: true,
|
|
|
|
Serum3CancelOrder: true,
|
|
|
|
Serum3CloseOpenOrders: true,
|
|
|
|
Serum3CreateOpenOrders: true,
|
|
|
|
Serum3DeregisterMarket: true,
|
|
|
|
Serum3EditMarket: true,
|
|
|
|
Serum3LiqForceCancelOrders: true,
|
|
|
|
Serum3PlaceOrder: true,
|
|
|
|
Serum3RegisterMarket: true,
|
|
|
|
Serum3SettleFunds: true,
|
|
|
|
StubOracleClose: true,
|
|
|
|
StubOracleCreate: true,
|
|
|
|
StubOracleSet: true,
|
|
|
|
TokenAddBank: true,
|
|
|
|
TokenDeposit: true,
|
|
|
|
TokenDeregister: true,
|
|
|
|
TokenEdit: true,
|
|
|
|
TokenLiqBankruptcy: true,
|
|
|
|
TokenLiqWithToken: true,
|
|
|
|
TokenRegister: true,
|
|
|
|
TokenRegisterTrustless: true,
|
|
|
|
TokenUpdateIndexAndRate: true,
|
|
|
|
TokenWithdraw: true,
|
2023-03-18 02:56:18 -07:00
|
|
|
AccountBuybackFeesWithMngo: true,
|
2023-04-13 03:44:12 -07:00
|
|
|
TokenForceCloseBorrowsWithToken: true,
|
2023-04-19 08:42:01 -07:00
|
|
|
PerpForceClosePosition: true,
|
2023-04-25 00:20:44 -07:00
|
|
|
GroupWithdrawInsuranceFund: true,
|
2023-07-03 05:09:11 -07:00
|
|
|
TokenConditionalSwapCreate: true,
|
|
|
|
TokenConditionalSwapTrigger: true,
|
|
|
|
TokenConditionalSwapCancel: true,
|
2023-07-13 09:22:35 -07:00
|
|
|
OpenbookV2CancelOrder: true,
|
|
|
|
OpenbookV2CloseOpenOrders: true,
|
|
|
|
OpenbookV2CreateOpenOrders: true,
|
|
|
|
OpenbookV2DeregisterMarket: true,
|
|
|
|
OpenbookV2EditMarket: true,
|
|
|
|
OpenbookV2LiqForceCancelOrders: true,
|
|
|
|
OpenbookV2PlaceOrder: true,
|
|
|
|
OpenbookV2PlaceTakeOrder: true,
|
|
|
|
OpenbookV2RegisterMarket: true,
|
|
|
|
OpenbookV2SettleFunds: true,
|
|
|
|
AdminTokenWithdrawFees: true,
|
|
|
|
AdminPerpWithdrawFees: true,
|
2023-09-04 00:30:57 -07:00
|
|
|
AccountSizeMigration: true,
|
2023-10-07 12:27:19 -07:00
|
|
|
TokenConditionalSwapStart: true,
|
2023-10-11 06:19:53 -07:00
|
|
|
TokenConditionalSwapCreatePremiumAuction: true,
|
|
|
|
TokenConditionalSwapCreateLinearAuction: true,
|
2023-12-05 06:39:24 -08:00
|
|
|
Serum3PlaceOrderV2: true,
|
2023-01-26 11:27:39 -08:00
|
|
|
};
|
|
|
|
|
|
|
|
// build ix gate e.g. buildIxGate(Builder(TrueIxGateParams).TokenDeposit(false).build()).toNumber(),
|
|
|
|
export function buildIxGate(p: IxGateParams): BN {
|
|
|
|
const ixGate = new BN(0);
|
|
|
|
|
|
|
|
function toggleIx(
|
|
|
|
ixGate: BN,
|
|
|
|
p: IxGateParams,
|
|
|
|
propName: string,
|
|
|
|
index: number,
|
|
|
|
): void {
|
|
|
|
if (p[propName] === undefined) {
|
|
|
|
throw new Error(`Unknown property ${propName}`);
|
|
|
|
}
|
|
|
|
ixGate.ior(p[propName] ? new BN(0) : new BN(1).ushln(index));
|
|
|
|
}
|
|
|
|
toggleIx(ixGate, p, 'AccountClose', 0);
|
|
|
|
toggleIx(ixGate, p, 'AccountCreate', 1);
|
|
|
|
toggleIx(ixGate, p, 'AccountEdit', 2);
|
|
|
|
toggleIx(ixGate, p, 'AccountExpand', 3);
|
|
|
|
toggleIx(ixGate, p, 'AccountToggleFreeze', 4);
|
|
|
|
toggleIx(ixGate, p, 'AltExtend', 5);
|
|
|
|
toggleIx(ixGate, p, 'AltSet', 6);
|
|
|
|
toggleIx(ixGate, p, 'FlashLoan', 7);
|
|
|
|
toggleIx(ixGate, p, 'GroupClose', 8);
|
|
|
|
toggleIx(ixGate, p, 'GroupCreate', 9);
|
|
|
|
toggleIx(ixGate, p, 'HealthRegion', 10);
|
|
|
|
toggleIx(ixGate, p, 'PerpCancelAllOrders', 11);
|
|
|
|
toggleIx(ixGate, p, 'PerpCancelAllOrdersBySide', 12);
|
|
|
|
toggleIx(ixGate, p, 'PerpCancelOrder', 13);
|
|
|
|
toggleIx(ixGate, p, 'PerpCancelOrderByClientOrderId', 14);
|
|
|
|
toggleIx(ixGate, p, 'PerpCloseMarket', 15);
|
|
|
|
toggleIx(ixGate, p, 'PerpConsumeEvents', 16);
|
|
|
|
toggleIx(ixGate, p, 'PerpCreateMarket', 17);
|
|
|
|
toggleIx(ixGate, p, 'PerpDeactivatePosition', 18);
|
2023-02-02 00:00:37 -08:00
|
|
|
toggleIx(ixGate, p, 'PerpLiqBaseOrPositivePnl', 19);
|
2023-01-26 11:27:39 -08:00
|
|
|
toggleIx(ixGate, p, 'PerpLiqForceCancelOrders', 20);
|
2023-02-02 00:00:37 -08:00
|
|
|
toggleIx(ixGate, p, 'PerpLiqNegativePnlOrBankruptcy', 21);
|
2023-01-26 11:27:39 -08:00
|
|
|
toggleIx(ixGate, p, 'PerpPlaceOrder', 22);
|
|
|
|
toggleIx(ixGate, p, 'PerpSettleFees', 23);
|
|
|
|
toggleIx(ixGate, p, 'PerpSettlePnl', 24);
|
|
|
|
toggleIx(ixGate, p, 'PerpUpdateFunding', 25);
|
|
|
|
toggleIx(ixGate, p, 'Serum3CancelAllOrders', 26);
|
|
|
|
toggleIx(ixGate, p, 'Serum3CancelOrder', 27);
|
|
|
|
toggleIx(ixGate, p, 'Serum3CloseOpenOrders', 28);
|
|
|
|
toggleIx(ixGate, p, 'Serum3CreateOpenOrders', 29);
|
|
|
|
toggleIx(ixGate, p, 'Serum3DeregisterMarket', 30);
|
|
|
|
toggleIx(ixGate, p, 'Serum3EditMarket', 31);
|
|
|
|
toggleIx(ixGate, p, 'Serum3LiqForceCancelOrders', 32);
|
|
|
|
toggleIx(ixGate, p, 'Serum3PlaceOrder', 33);
|
|
|
|
toggleIx(ixGate, p, 'Serum3RegisterMarket', 34);
|
|
|
|
toggleIx(ixGate, p, 'Serum3SettleFunds', 35);
|
|
|
|
toggleIx(ixGate, p, 'StubOracleClose', 36);
|
|
|
|
toggleIx(ixGate, p, 'StubOracleCreate', 37);
|
|
|
|
toggleIx(ixGate, p, 'StubOracleSet', 38);
|
|
|
|
toggleIx(ixGate, p, 'TokenAddBank', 39);
|
|
|
|
toggleIx(ixGate, p, 'TokenDeposit', 40);
|
|
|
|
toggleIx(ixGate, p, 'TokenDeregister', 41);
|
|
|
|
toggleIx(ixGate, p, 'TokenLiqBankruptcy', 42);
|
|
|
|
toggleIx(ixGate, p, 'TokenLiqWithToken', 43);
|
|
|
|
toggleIx(ixGate, p, 'TokenRegister', 44);
|
|
|
|
toggleIx(ixGate, p, 'TokenRegisterTrustless', 45);
|
|
|
|
toggleIx(ixGate, p, 'TokenUpdateIndexAndRate', 46);
|
|
|
|
toggleIx(ixGate, p, 'TokenWithdraw', 47);
|
2023-03-18 02:56:18 -07:00
|
|
|
toggleIx(ixGate, p, 'AccountBuybackFeesWithMngo', 48);
|
2023-04-13 03:44:12 -07:00
|
|
|
toggleIx(ixGate, p, 'TokenForceCloseBorrowsWithToken', 49);
|
2023-04-25 00:20:44 -07:00
|
|
|
toggleIx(ixGate, p, 'PerpForceClosePosition', 50);
|
|
|
|
toggleIx(ixGate, p, 'GroupWithdrawInsuranceFund', 51);
|
2023-07-03 05:09:11 -07:00
|
|
|
toggleIx(ixGate, p, 'TokenConditionalSwapCreate', 52);
|
|
|
|
toggleIx(ixGate, p, 'TokenConditionalSwapTrigger', 53);
|
|
|
|
toggleIx(ixGate, p, 'TokenConditionalSwapCancel', 54);
|
2023-07-13 09:22:35 -07:00
|
|
|
toggleIx(ixGate, p, 'OpenbookV2CancelOrder', 55);
|
|
|
|
toggleIx(ixGate, p, 'OpenbookV2CloseOpenOrders', 56);
|
|
|
|
toggleIx(ixGate, p, 'OpenbookV2CreateOpenOrders', 57);
|
|
|
|
toggleIx(ixGate, p, 'OpenbookV2DeregisterMarket', 58);
|
|
|
|
toggleIx(ixGate, p, 'OpenbookV2EditMarket', 59);
|
|
|
|
toggleIx(ixGate, p, 'OpenbookV2LiqForceCancelOrders', 60);
|
|
|
|
toggleIx(ixGate, p, 'OpenbookV2PlaceOrder', 61);
|
|
|
|
toggleIx(ixGate, p, 'OpenbookV2PlaceTakeOrder', 62);
|
|
|
|
toggleIx(ixGate, p, 'OpenbookV2RegisterMarket', 63);
|
|
|
|
toggleIx(ixGate, p, 'OpenbookV2SettleFunds', 63);
|
|
|
|
toggleIx(ixGate, p, 'AdminTokenWithdrawFees', 65);
|
|
|
|
toggleIx(ixGate, p, 'AdminPerpWithdrawFees', 66);
|
2023-09-04 00:30:57 -07:00
|
|
|
toggleIx(ixGate, p, 'AccountSizeMigration', 67);
|
2023-10-07 12:27:19 -07:00
|
|
|
toggleIx(ixGate, p, 'TokenConditionalSwapStart', 68);
|
2023-10-11 06:19:53 -07:00
|
|
|
toggleIx(ixGate, p, 'TokenConditionalSwapCreatePremiumAuction', 69);
|
|
|
|
toggleIx(ixGate, p, 'TokenConditionalSwapCreateLinearAuction', 70);
|
2023-12-05 06:39:24 -08:00
|
|
|
toggleIx(ixGate, p, 'Serum3PlaceOrderV2', 71);
|
2023-01-26 11:27:39 -08:00
|
|
|
|
|
|
|
return ixGate;
|
|
|
|
}
|