Variable VERTEX_ABISConst
VERTEX_ABIS: {
querier: readonly [{
inputs: readonly [{
internalType: "int256";
name: "x";
type: "int256";
}];
name: "PRBMathSD59x18__SqrtNegativeInput";
type: "error";
}, {
inputs: readonly [{
internalType: "int256";
name: "x";
type: "int256";
}];
name: "PRBMathSD59x18__SqrtOverflow";
type: "error";
}, {
inputs: readonly [];
name: "getAllProducts";
outputs: readonly [{
components: readonly [{
components: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "int128";
name: "oraclePriceX18";
type: "int128";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct RiskHelper.Risk";
name: "risk";
type: "tuple";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct ISpotEngine.Config";
name: "config";
type: "tuple";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct ISpotEngine.State";
name: "state";
type: "tuple";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
components: ...;
internalType: ...;
name: ...;
type: ...;
}, {
components: ...;
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct ISpotEngine.LpState";
name: "lpState";
type: "tuple";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct FQuerier.BookInfo";
name: "bookInfo";
type: "tuple";
}];
internalType: "struct FQuerier.SpotProduct[]";
name: "spotProducts";
type: "tuple[]";
}, {
components: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "int128";
name: "oraclePriceX18";
type: "int128";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct RiskHelper.Risk";
name: "risk";
type: "tuple";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct IPerpEngine.State";
name: "state";
type: "tuple";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct IPerpEngine.LpState";
name: "lpState";
type: "tuple";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct FQuerier.BookInfo";
name: "bookInfo";
type: "tuple";
}];
internalType: "struct FQuerier.PerpProduct[]";
name: "perpProducts";
type: "tuple[]";
}];
internalType: "struct FQuerier.ProductInfo";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "contract IProductEngine";
name: "engine";
type: "address";
}];
name: "getBookInfo";
outputs: readonly [{
components: readonly [{
internalType: "int128";
name: "sizeIncrement";
type: "int128";
}, {
internalType: "int128";
name: "priceIncrementX18";
type: "int128";
}, {
internalType: "int128";
name: "minSize";
type: "int128";
}, {
internalType: "int128";
name: "collectedFees";
type: "int128";
}, {
internalType: "int128";
name: "lpSpreadX18";
type: "int128";
}];
internalType: "struct FQuerier.BookInfo";
name: "bookInfo";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getClearinghouse";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}, {
internalType: "uint32";
name: "productId";
type: "uint32";
}];
name: "getPerpBalance";
outputs: readonly [{
components: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeFundingX18";
type: "int128";
}];
internalType: "struct IPerpEngine.LpBalance";
name: "lpBalance";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "vQuoteBalance";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeFundingX18";
type: "int128";
}];
internalType: "struct IPerpEngine.Balance";
name: "balance";
type: "tuple";
}];
internalType: "struct FQuerier.PerpBalance";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}, {
internalType: "uint32[]";
name: "productIds";
type: "uint32[]";
}];
name: "getPerpBalances";
outputs: readonly [{
components: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeFundingX18";
type: "int128";
}];
internalType: "struct IPerpEngine.LpBalance";
name: "lpBalance";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "vQuoteBalance";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeFundingX18";
type: "int128";
}];
internalType: "struct IPerpEngine.Balance";
name: "balance";
type: "tuple";
}];
internalType: "struct FQuerier.PerpBalance[]";
name: "perpBalances";
type: "tuple[]";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}];
name: "getPerpProduct";
outputs: readonly [{
components: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "int128";
name: "oraclePriceX18";
type: "int128";
}, {
components: readonly [{
internalType: "int128";
name: "longWeightInitialX18";
type: "int128";
}, {
internalType: "int128";
name: "shortWeightInitialX18";
type: "int128";
}, {
internalType: "int128";
name: "longWeightMaintenanceX18";
type: "int128";
}, {
internalType: "int128";
name: "shortWeightMaintenanceX18";
type: "int128";
}, {
internalType: "int128";
name: "largePositionPenaltyX18";
type: "int128";
}];
internalType: "struct RiskHelper.Risk";
name: "risk";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "cumulativeFundingLongX18";
type: "int128";
}, {
internalType: "int128";
name: "cumulativeFundingShortX18";
type: "int128";
}, {
internalType: "int128";
name: "availableSettle";
type: "int128";
}, {
internalType: "int128";
name: "openInterest";
type: "int128";
}];
internalType: "struct IPerpEngine.State";
name: "state";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "supply";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeFundingX18";
type: "int128";
}, {
internalType: "int128";
name: "cumulativeFundingPerLpX18";
type: "int128";
}, {
internalType: "int128";
name: "base";
type: "int128";
}, {
internalType: "int128";
name: "quote";
type: "int128";
}];
internalType: "struct IPerpEngine.LpState";
name: "lpState";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "sizeIncrement";
type: "int128";
}, {
internalType: "int128";
name: "priceIncrementX18";
type: "int128";
}, {
internalType: "int128";
name: "minSize";
type: "int128";
}, {
internalType: "int128";
name: "collectedFees";
type: "int128";
}, {
internalType: "int128";
name: "lpSpreadX18";
type: "int128";
}];
internalType: "struct FQuerier.BookInfo";
name: "bookInfo";
type: "tuple";
}];
internalType: "struct FQuerier.PerpProduct";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32[]";
name: "productIds";
type: "uint32[]";
}];
name: "getPerpProducts";
outputs: readonly [{
components: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "int128";
name: "oraclePriceX18";
type: "int128";
}, {
components: readonly [{
internalType: "int128";
name: "longWeightInitialX18";
type: "int128";
}, {
internalType: "int128";
name: "shortWeightInitialX18";
type: "int128";
}, {
internalType: "int128";
name: "longWeightMaintenanceX18";
type: "int128";
}, {
internalType: "int128";
name: "shortWeightMaintenanceX18";
type: "int128";
}, {
internalType: "int128";
name: "largePositionPenaltyX18";
type: "int128";
}];
internalType: "struct RiskHelper.Risk";
name: "risk";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "cumulativeFundingLongX18";
type: "int128";
}, {
internalType: "int128";
name: "cumulativeFundingShortX18";
type: "int128";
}, {
internalType: "int128";
name: "availableSettle";
type: "int128";
}, {
internalType: "int128";
name: "openInterest";
type: "int128";
}];
internalType: "struct IPerpEngine.State";
name: "state";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "supply";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeFundingX18";
type: "int128";
}, {
internalType: "int128";
name: "cumulativeFundingPerLpX18";
type: "int128";
}, {
internalType: "int128";
name: "base";
type: "int128";
}, {
internalType: "int128";
name: "quote";
type: "int128";
}];
internalType: "struct IPerpEngine.LpState";
name: "lpState";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "sizeIncrement";
type: "int128";
}, {
internalType: "int128";
name: "priceIncrementX18";
type: "int128";
}, {
internalType: "int128";
name: "minSize";
type: "int128";
}, {
internalType: "int128";
name: "collectedFees";
type: "int128";
}, {
internalType: "int128";
name: "lpSpreadX18";
type: "int128";
}];
internalType: "struct FQuerier.BookInfo";
name: "bookInfo";
type: "tuple";
}];
internalType: "struct FQuerier.PerpProduct[]";
name: "perpProducts";
type: "tuple[]";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}, {
internalType: "uint32";
name: "productId";
type: "uint32";
}];
name: "getSpotBalance";
outputs: readonly [{
components: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}];
internalType: "struct ISpotEngine.LpBalance";
name: "lpBalance";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeMultiplierX18";
type: "int128";
}];
internalType: "struct ISpotEngine.Balance";
name: "balance";
type: "tuple";
}];
internalType: "struct FQuerier.SpotBalance";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}, {
internalType: "uint32[]";
name: "productIds";
type: "uint32[]";
}];
name: "getSpotBalances";
outputs: readonly [{
components: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}];
internalType: "struct ISpotEngine.LpBalance";
name: "lpBalance";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeMultiplierX18";
type: "int128";
}];
internalType: "struct ISpotEngine.Balance";
name: "balance";
type: "tuple";
}];
internalType: "struct FQuerier.SpotBalance[]";
name: "spotBalances";
type: "tuple[]";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}];
name: "getSpotProduct";
outputs: readonly [{
components: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "int128";
name: "oraclePriceX18";
type: "int128";
}, {
components: readonly [{
internalType: "int128";
name: "longWeightInitialX18";
type: "int128";
}, {
internalType: "int128";
name: "shortWeightInitialX18";
type: "int128";
}, {
internalType: "int128";
name: "longWeightMaintenanceX18";
type: "int128";
}, {
internalType: "int128";
name: "shortWeightMaintenanceX18";
type: "int128";
}, {
internalType: "int128";
name: "largePositionPenaltyX18";
type: "int128";
}];
internalType: "struct RiskHelper.Risk";
name: "risk";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "token";
type: "address";
}, {
internalType: "int128";
name: "interestInflectionUtilX18";
type: "int128";
}, {
internalType: "int128";
name: "interestFloorX18";
type: "int128";
}, {
internalType: "int128";
name: "interestSmallCapX18";
type: "int128";
}, {
internalType: "int128";
name: "interestLargeCapX18";
type: "int128";
}];
internalType: "struct ISpotEngine.Config";
name: "config";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "cumulativeDepositsMultiplierX18";
type: "int128";
}, {
internalType: "int128";
name: "cumulativeBorrowsMultiplierX18";
type: "int128";
}, {
internalType: "int128";
name: "totalDepositsNormalized";
type: "int128";
}, {
internalType: "int128";
name: "totalBorrowsNormalized";
type: "int128";
}];
internalType: "struct ISpotEngine.State";
name: "state";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "supply";
type: "int128";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct ISpotEngine.Balance";
name: "quote";
type: "tuple";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct ISpotEngine.Balance";
name: "base";
type: "tuple";
}];
internalType: "struct ISpotEngine.LpState";
name: "lpState";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "sizeIncrement";
type: "int128";
}, {
internalType: "int128";
name: "priceIncrementX18";
type: "int128";
}, {
internalType: "int128";
name: "minSize";
type: "int128";
}, {
internalType: "int128";
name: "collectedFees";
type: "int128";
}, {
internalType: "int128";
name: "lpSpreadX18";
type: "int128";
}];
internalType: "struct FQuerier.BookInfo";
name: "bookInfo";
type: "tuple";
}];
internalType: "struct FQuerier.SpotProduct";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32[]";
name: "productIds";
type: "uint32[]";
}];
name: "getSpotProducts";
outputs: readonly [{
components: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "int128";
name: "oraclePriceX18";
type: "int128";
}, {
components: readonly [{
internalType: "int128";
name: "longWeightInitialX18";
type: "int128";
}, {
internalType: "int128";
name: "shortWeightInitialX18";
type: "int128";
}, {
internalType: "int128";
name: "longWeightMaintenanceX18";
type: "int128";
}, {
internalType: "int128";
name: "shortWeightMaintenanceX18";
type: "int128";
}, {
internalType: "int128";
name: "largePositionPenaltyX18";
type: "int128";
}];
internalType: "struct RiskHelper.Risk";
name: "risk";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "token";
type: "address";
}, {
internalType: "int128";
name: "interestInflectionUtilX18";
type: "int128";
}, {
internalType: "int128";
name: "interestFloorX18";
type: "int128";
}, {
internalType: "int128";
name: "interestSmallCapX18";
type: "int128";
}, {
internalType: "int128";
name: "interestLargeCapX18";
type: "int128";
}];
internalType: "struct ISpotEngine.Config";
name: "config";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "cumulativeDepositsMultiplierX18";
type: "int128";
}, {
internalType: "int128";
name: "cumulativeBorrowsMultiplierX18";
type: "int128";
}, {
internalType: "int128";
name: "totalDepositsNormalized";
type: "int128";
}, {
internalType: "int128";
name: "totalBorrowsNormalized";
type: "int128";
}];
internalType: "struct ISpotEngine.State";
name: "state";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "supply";
type: "int128";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct ISpotEngine.Balance";
name: "quote";
type: "tuple";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct ISpotEngine.Balance";
name: "base";
type: "tuple";
}];
internalType: "struct ISpotEngine.LpState";
name: "lpState";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "sizeIncrement";
type: "int128";
}, {
internalType: "int128";
name: "priceIncrementX18";
type: "int128";
}, {
internalType: "int128";
name: "minSize";
type: "int128";
}, {
internalType: "int128";
name: "collectedFees";
type: "int128";
}, {
internalType: "int128";
name: "lpSpreadX18";
type: "int128";
}];
internalType: "struct FQuerier.BookInfo";
name: "bookInfo";
type: "tuple";
}];
internalType: "struct FQuerier.SpotProduct[]";
name: "spotProducts";
type: "tuple[]";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}];
name: "getSubaccountInfo";
outputs: readonly [{
components: readonly [{
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}, {
internalType: "bool";
name: "exists";
type: "bool";
}, {
components: readonly [{
internalType: "int128";
name: "assets";
type: "int128";
}, {
internalType: "int128";
name: "liabilities";
type: "int128";
}, {
internalType: "int128";
name: "health";
type: "int128";
}];
internalType: "struct FQuerier.HealthInfo[]";
name: "healths";
type: "tuple[]";
}, {
internalType: "int128[][]";
name: "healthContributions";
type: "int128[][]";
}, {
internalType: "uint32";
name: "spotCount";
type: "uint32";
}, {
internalType: "uint32";
name: "perpCount";
type: "uint32";
}, {
components: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct ISpotEngine.LpBalance";
name: "lpBalance";
type: "tuple";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct ISpotEngine.Balance";
name: "balance";
type: "tuple";
}];
internalType: "struct FQuerier.SpotBalance[]";
name: "spotBalances";
type: "tuple[]";
}, {
components: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct IPerpEngine.LpBalance";
name: "lpBalance";
type: "tuple";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct IPerpEngine.Balance";
name: "balance";
type: "tuple";
}];
internalType: "struct FQuerier.PerpBalance[]";
name: "perpBalances";
type: "tuple[]";
}, {
components: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "int128";
name: "oraclePriceX18";
type: "int128";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct RiskHelper.Risk";
name: "risk";
type: "tuple";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct ISpotEngine.Config";
name: "config";
type: "tuple";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct ISpotEngine.State";
name: "state";
type: "tuple";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
components: ...;
internalType: ...;
name: ...;
type: ...;
}, {
components: ...;
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct ISpotEngine.LpState";
name: "lpState";
type: "tuple";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct FQuerier.BookInfo";
name: "bookInfo";
type: "tuple";
}];
internalType: "struct FQuerier.SpotProduct[]";
name: "spotProducts";
type: "tuple[]";
}, {
components: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "int128";
name: "oraclePriceX18";
type: "int128";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct RiskHelper.Risk";
name: "risk";
type: "tuple";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct IPerpEngine.State";
name: "state";
type: "tuple";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct IPerpEngine.LpState";
name: "lpState";
type: "tuple";
}, {
components: readonly [{
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}, {
internalType: ...;
name: ...;
type: ...;
}];
internalType: "struct FQuerier.BookInfo";
name: "bookInfo";
type: "tuple";
}];
internalType: "struct FQuerier.PerpProduct[]";
name: "perpProducts";
type: "tuple[]";
}];
internalType: "struct FQuerier.SubaccountInfo";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getVersion";
outputs: readonly [{
internalType: "uint64";
name: "";
type: "uint64";
}];
stateMutability: "pure";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "_clearinghouse";
type: "address";
}];
name: "initialize";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}];
endpoint: readonly [{
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint8";
name: "version";
type: "uint8";
}];
name: "Initialized";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "previousOwner";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "OwnershipTransferred";
type: "event";
}, {
anonymous: false;
inputs: readonly [];
name: "SubmitTransactions";
type: "event";
}, {
inputs: readonly [];
name: "clearinghouse";
outputs: readonly [{
internalType: "contract IClearinghouse";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes12";
name: "subaccountName";
type: "bytes12";
}, {
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "uint128";
name: "amount";
type: "uint128";
}];
name: "depositCollateral";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}, {
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "uint128";
name: "amount";
type: "uint128";
}, {
internalType: "string";
name: "referralCode";
type: "string";
}];
name: "depositCollateralWithReferral";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes12";
name: "subaccountName";
type: "bytes12";
}, {
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "uint128";
name: "amount";
type: "uint128";
}, {
internalType: "string";
name: "referralCode";
type: "string";
}];
name: "depositCollateralWithReferral";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "count";
type: "uint32";
}];
name: "executeSlowModeTransactions";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}];
name: "getBook";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "sender";
type: "address";
}];
name: "getNonce";
outputs: readonly [{
internalType: "uint64";
name: "";
type: "uint64";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}];
name: "getPriceX18";
outputs: readonly [{
internalType: "int128";
name: "priceX18";
type: "int128";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "healthGroup";
type: "uint32";
}];
name: "getPricesX18";
outputs: readonly [{
components: readonly [{
internalType: "int128";
name: "spotPriceX18";
type: "int128";
}, {
internalType: "int128";
name: "perpPriceX18";
type: "int128";
}];
internalType: "struct IEndpoint.Prices";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getSequencer";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}];
name: "getSubaccountId";
outputs: readonly [{
internalType: "uint64";
name: "";
type: "uint64";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getTime";
outputs: readonly [{
internalType: "uint128";
name: "";
type: "uint128";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getVersion";
outputs: readonly [{
internalType: "uint64";
name: "";
type: "uint64";
}];
stateMutability: "pure";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "_sanctions";
type: "address";
}, {
internalType: "address";
name: "_sequencer";
type: "address";
}, {
internalType: "contract IClearinghouse";
name: "_clearinghouse";
type: "address";
}, {
internalType: "uint64";
name: "slowModeTimeout";
type: "uint64";
}, {
internalType: "uint128";
name: "_time";
type: "uint128";
}, {
internalType: "int128[]";
name: "_prices";
type: "int128[]";
}];
name: "initialize";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "nSubmissions";
outputs: readonly [{
internalType: "uint64";
name: "";
type: "uint64";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "owner";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "sender";
type: "address";
}, {
internalType: "bytes";
name: "transaction";
type: "bytes";
}];
name: "processSlowModeTransaction";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
name: "referralCodes";
outputs: readonly [{
internalType: "string";
name: "";
type: "string";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "wallet";
type: "address";
}, {
internalType: "bool";
name: "transferable";
type: "bool";
}];
name: "registerTransferableWallet";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "renounceOwnership";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}];
name: "requireSubaccount";
outputs: readonly [];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "";
type: "uint32";
}];
name: "sequencerFee";
outputs: readonly [{
internalType: "int128";
name: "";
type: "int128";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "sequencerFees";
outputs: readonly [{
internalType: "int128";
name: "";
type: "int128";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "address";
name: "book";
type: "address";
}];
name: "setBook";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "_sequencer";
type: "address";
}];
name: "setSequencer";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "slowModeConfig";
outputs: readonly [{
internalType: "uint64";
name: "timeout";
type: "uint64";
}, {
internalType: "uint64";
name: "txCount";
type: "uint64";
}, {
internalType: "uint64";
name: "txUpTo";
type: "uint64";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint64";
name: "";
type: "uint64";
}];
name: "slowModeTxs";
outputs: readonly [{
internalType: "uint64";
name: "executableAt";
type: "uint64";
}, {
internalType: "address";
name: "sender";
type: "address";
}, {
internalType: "bytes";
name: "tx";
type: "bytes";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes";
name: "transaction";
type: "bytes";
}];
name: "submitSlowModeTransaction";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes[]";
name: "transactions";
type: "bytes[]";
}];
name: "submitTransactions";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint64";
name: "idx";
type: "uint64";
}, {
internalType: "bytes[]";
name: "transactions";
type: "bytes[]";
}];
name: "submitTransactionsChecked";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint64";
name: "idx";
type: "uint64";
}, {
internalType: "bytes[]";
name: "transactions";
type: "bytes[]";
}, {
internalType: "uint256";
name: "gasLimit";
type: "uint256";
}];
name: "submitTransactionsCheckedWithGasLimit";
outputs: readonly [{
internalType: "uint64";
name: "";
type: "uint64";
}, {
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "transferOwnership";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}];
clearinghouse: readonly [{
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "endpoint";
type: "address";
}, {
indexed: false;
internalType: "address";
name: "quote";
type: "address";
}];
name: "ClearinghouseInitialized";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "bytes32";
name: "liquidatorSubaccount";
type: "bytes32";
}, {
indexed: true;
internalType: "bytes32";
name: "liquidateeSubaccount";
type: "bytes32";
}, {
indexed: false;
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
indexed: false;
internalType: "bool";
name: "isEncodedSpread";
type: "bool";
}, {
indexed: false;
internalType: "int128";
name: "amount";
type: "int128";
}, {
indexed: false;
internalType: "int128";
name: "amountQuote";
type: "int128";
}];
name: "Liquidation";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "int128";
name: "amount";
type: "int128";
}, {
indexed: true;
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}, {
indexed: false;
internalType: "uint32";
name: "productId";
type: "uint32";
}];
name: "ModifyCollateral";
type: "event";
}, {
inputs: readonly [{
internalType: "address";
name: "engine";
type: "address";
}, {
internalType: "address";
name: "offchainExchange";
type: "address";
}, {
internalType: "enum IProductEngine.EngineType";
name: "engineType";
type: "uint8";
}];
name: "addEngine";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
internalType: "bytes32";
name: "sender";
type: "bytes32";
}, {
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "uint128";
name: "amount";
type: "uint128";
}, {
internalType: "uint64";
name: "nonce";
type: "uint64";
}];
internalType: "struct IEndpoint.BurnLp";
name: "tx";
type: "tuple";
}];
name: "burnLp";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
internalType: "bytes32";
name: "sender";
type: "bytes32";
}, {
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "uint128";
name: "amount";
type: "uint128";
}, {
internalType: "bytes32";
name: "recipient";
type: "bytes32";
}];
internalType: "struct IEndpoint.BurnLpAndTransfer";
name: "txn";
type: "tuple";
}];
name: "burnLpAndTransfer";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}];
internalType: "struct IEndpoint.ClaimSequencerFees";
name: "tx";
type: "tuple";
}, {
internalType: "int128[]";
name: "fees";
type: "int128[]";
}];
name: "claimSequencerFees";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
internalType: "bytes32";
name: "sender";
type: "bytes32";
}, {
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "uint128";
name: "amount";
type: "uint128";
}];
internalType: "struct IEndpoint.DepositCollateral";
name: "tx";
type: "tuple";
}];
name: "depositCollateral";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
internalType: "uint128";
name: "amount";
type: "uint128";
}];
internalType: "struct IEndpoint.DepositInsurance";
name: "tx";
type: "tuple";
}];
name: "depositInsurance";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "getClearinghouseLiq";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getEndpoint";
outputs: readonly [{
internalType: "address";
name: "endpoint";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}];
name: "getEngineByProduct";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "enum IProductEngine.EngineType";
name: "engineType";
type: "uint8";
}];
name: "getEngineByType";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}, {
internalType: "enum IProductEngine.HealthType";
name: "healthType";
type: "uint8";
}];
name: "getHealth";
outputs: readonly [{
internalType: "int128";
name: "";
type: "int128";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getInsurance";
outputs: readonly [{
internalType: "int128";
name: "";
type: "int128";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getQuote";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getSpreads";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getVersion";
outputs: readonly [{
internalType: "uint64";
name: "";
type: "uint64";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
internalType: "bytes32";
name: "sender";
type: "bytes32";
}, {
internalType: "bytes32";
name: "liquidatee";
type: "bytes32";
}, {
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "bool";
name: "isEncodedSpread";
type: "bool";
}, {
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "uint64";
name: "nonce";
type: "uint64";
}];
internalType: "struct IEndpoint.LiquidateSubaccount";
name: "tx";
type: "tuple";
}];
name: "liquidateSubaccount";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
internalType: "bytes32";
name: "sender";
type: "bytes32";
}, {
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "uint128";
name: "amountBase";
type: "uint128";
}, {
internalType: "uint128";
name: "quoteAmountLow";
type: "uint128";
}, {
internalType: "uint128";
name: "quoteAmountHigh";
type: "uint128";
}, {
internalType: "uint64";
name: "nonce";
type: "uint64";
}];
internalType: "struct IEndpoint.MintLp";
name: "tx";
type: "tuple";
}];
name: "mintLp";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}];
name: "registerProduct";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
internalType: "bytes32[]";
name: "subaccounts";
type: "bytes32[]";
}, {
internalType: "uint256[]";
name: "productIds";
type: "uint256[]";
}];
internalType: "struct IEndpoint.SettlePnl";
name: "tx";
type: "tuple";
}];
name: "settlePnl";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
internalType: "bytes32";
name: "sender";
type: "bytes32";
}, {
internalType: "bytes32";
name: "recipient";
type: "bytes32";
}, {
internalType: "uint128";
name: "amount";
type: "uint128";
}, {
internalType: "uint64";
name: "nonce";
type: "uint64";
}];
internalType: "struct IEndpoint.TransferQuote";
name: "tx";
type: "tuple";
}];
name: "transferQuote";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "_clearinghouseLiq";
type: "address";
}];
name: "upgradeClearinghouseLiq";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "sender";
type: "bytes32";
}, {
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "uint128";
name: "amount";
type: "uint128";
}, {
internalType: "address";
name: "sendTo";
type: "address";
}];
name: "withdrawCollateral";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}];
spotEngine: readonly [{
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint32";
name: "productId";
type: "uint32";
}];
name: "AddProduct";
type: "event";
}, {
inputs: readonly [{
components: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}, {
internalType: "int128";
name: "amountDelta";
type: "int128";
}, {
internalType: "int128";
name: "vQuoteDelta";
type: "int128";
}];
internalType: "struct IProductEngine.ProductDelta[]";
name: "deltas";
type: "tuple[]";
}];
name: "applyDeltas";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}, {
internalType: "int128";
name: "amountLp";
type: "int128";
}];
name: "burnLp";
outputs: readonly [{
internalType: "int128";
name: "";
type: "int128";
}, {
internalType: "int128";
name: "";
type: "int128";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "liquidatee";
type: "bytes32";
}, {
internalType: "bytes32";
name: "liquidator";
type: "bytes32";
}, {
internalType: "address";
name: "feeCalculator";
type: "address";
}];
name: "decomposeLps";
outputs: readonly [{
internalType: "int128";
name: "";
type: "int128";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}];
name: "getBalance";
outputs: readonly [{
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeMultiplierX18";
type: "int128";
}];
internalType: "struct ISpotEngine.Balance";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}];
name: "getBalanceAmount";
outputs: readonly [{
internalType: "int128";
name: "";
type: "int128";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}];
name: "getBalances";
outputs: readonly [{
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}];
internalType: "struct ISpotEngine.LpBalance";
name: "";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeMultiplierX18";
type: "int128";
}];
internalType: "struct ISpotEngine.Balance";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getClearinghouse";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}];
name: "getConfig";
outputs: readonly [{
components: readonly [{
internalType: "address";
name: "token";
type: "address";
}, {
internalType: "int128";
name: "interestInflectionUtilX18";
type: "int128";
}, {
internalType: "int128";
name: "interestFloorX18";
type: "int128";
}, {
internalType: "int128";
name: "interestSmallCapX18";
type: "int128";
}, {
internalType: "int128";
name: "interestLargeCapX18";
type: "int128";
}];
internalType: "struct ISpotEngine.Config";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getEngineType";
outputs: readonly [{
internalType: "enum IProductEngine.EngineType";
name: "";
type: "uint8";
}];
stateMutability: "pure";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}];
name: "getLpState";
outputs: readonly [{
components: readonly [{
internalType: "int128";
name: "supply";
type: "int128";
}, {
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeMultiplierX18";
type: "int128";
}];
internalType: "struct ISpotEngine.Balance";
name: "quote";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeMultiplierX18";
type: "int128";
}];
internalType: "struct ISpotEngine.Balance";
name: "base";
type: "tuple";
}];
internalType: "struct ISpotEngine.LpState";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}];
name: "getOrderbook";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getProductIds";
outputs: readonly [{
internalType: "uint32[]";
name: "";
type: "uint32[]";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}];
name: "getStateAndBalance";
outputs: readonly [{
components: readonly [{
internalType: "int128";
name: "cumulativeDepositsMultiplierX18";
type: "int128";
}, {
internalType: "int128";
name: "cumulativeBorrowsMultiplierX18";
type: "int128";
}, {
internalType: "int128";
name: "totalDepositsNormalized";
type: "int128";
}, {
internalType: "int128";
name: "totalBorrowsNormalized";
type: "int128";
}];
internalType: "struct ISpotEngine.State";
name: "";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeMultiplierX18";
type: "int128";
}];
internalType: "struct ISpotEngine.Balance";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}];
name: "getStatesAndBalances";
outputs: readonly [{
components: readonly [{
internalType: "int128";
name: "supply";
type: "int128";
}, {
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeMultiplierX18";
type: "int128";
}];
internalType: "struct ISpotEngine.Balance";
name: "quote";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeMultiplierX18";
type: "int128";
}];
internalType: "struct ISpotEngine.Balance";
name: "base";
type: "tuple";
}];
internalType: "struct ISpotEngine.LpState";
name: "";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}];
internalType: "struct ISpotEngine.LpBalance";
name: "";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "cumulativeDepositsMultiplierX18";
type: "int128";
}, {
internalType: "int128";
name: "cumulativeBorrowsMultiplierX18";
type: "int128";
}, {
internalType: "int128";
name: "totalDepositsNormalized";
type: "int128";
}, {
internalType: "int128";
name: "totalBorrowsNormalized";
type: "int128";
}];
internalType: "struct ISpotEngine.State";
name: "";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeMultiplierX18";
type: "int128";
}];
internalType: "struct ISpotEngine.Balance";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}];
name: "getWithdrawFee";
outputs: readonly [{
internalType: "int128";
name: "";
type: "int128";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}];
name: "hasBalance";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "_clearinghouse";
type: "address";
}, {
internalType: "address";
name: "_quote";
type: "address";
}, {
internalType: "address";
name: "_endpoint";
type: "address";
}, {
internalType: "address";
name: "_admin";
type: "address";
}, {
internalType: "address";
name: "_fees";
type: "address";
}];
name: "initialize";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "int128[]";
name: "totalDeposits";
type: "int128[]";
}, {
internalType: "int128[]";
name: "totalBorrows";
type: "int128[]";
}];
name: "manualAssert";
outputs: readonly [];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}, {
internalType: "int128";
name: "amountBase";
type: "int128";
}, {
internalType: "int128";
name: "quoteAmountLow";
type: "int128";
}, {
internalType: "int128";
name: "quoteAmountHigh";
type: "int128";
}];
name: "mintLp";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}];
name: "socializeSubaccount";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "int128";
name: "baseDelta";
type: "int128";
}, {
internalType: "int128";
name: "quoteDelta";
type: "int128";
}];
name: "swapLp";
outputs: readonly [{
internalType: "int128";
name: "";
type: "int128";
}, {
internalType: "int128";
name: "";
type: "int128";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "priceX18";
type: "int128";
}, {
internalType: "int128";
name: "sizeIncrement";
type: "int128";
}, {
internalType: "int128";
name: "lpSpreadX18";
type: "int128";
}];
name: "swapLp";
outputs: readonly [{
internalType: "int128";
name: "";
type: "int128";
}, {
internalType: "int128";
name: "";
type: "int128";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes";
name: "txn";
type: "bytes";
}];
name: "updateProduct";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint128";
name: "dt";
type: "uint128";
}];
name: "updateStates";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}];
perpEngine: readonly [{
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint32";
name: "productId";
type: "uint32";
}];
name: "AddProduct";
type: "event";
}, {
inputs: readonly [{
components: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}, {
internalType: "int128";
name: "amountDelta";
type: "int128";
}, {
internalType: "int128";
name: "vQuoteDelta";
type: "int128";
}];
internalType: "struct IProductEngine.ProductDelta[]";
name: "deltas";
type: "tuple[]";
}];
name: "applyDeltas";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}, {
internalType: "int128";
name: "amountLp";
type: "int128";
}];
name: "burnLp";
outputs: readonly [{
internalType: "int128";
name: "";
type: "int128";
}, {
internalType: "int128";
name: "";
type: "int128";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "liquidatee";
type: "bytes32";
}, {
internalType: "bytes32";
name: "liquidator";
type: "bytes32";
}, {
internalType: "address";
name: "feeCalculator";
type: "address";
}];
name: "decomposeLps";
outputs: readonly [{
internalType: "int128";
name: "";
type: "int128";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}];
name: "getBalance";
outputs: readonly [{
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "vQuoteBalance";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeFundingX18";
type: "int128";
}];
internalType: "struct IPerpEngine.Balance";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}];
name: "getBalanceAmount";
outputs: readonly [{
internalType: "int128";
name: "";
type: "int128";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}];
name: "getBalances";
outputs: readonly [{
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeFundingX18";
type: "int128";
}];
internalType: "struct IPerpEngine.LpBalance";
name: "";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "vQuoteBalance";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeFundingX18";
type: "int128";
}];
internalType: "struct IPerpEngine.Balance";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getClearinghouse";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getEngineType";
outputs: readonly [{
internalType: "enum IProductEngine.EngineType";
name: "";
type: "uint8";
}];
stateMutability: "pure";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}];
name: "getLpState";
outputs: readonly [{
components: readonly [{
internalType: "int128";
name: "supply";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeFundingX18";
type: "int128";
}, {
internalType: "int128";
name: "cumulativeFundingPerLpX18";
type: "int128";
}, {
internalType: "int128";
name: "base";
type: "int128";
}, {
internalType: "int128";
name: "quote";
type: "int128";
}];
internalType: "struct IPerpEngine.LpState";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}];
name: "getOrderbook";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}];
name: "getPositionPnl";
outputs: readonly [{
internalType: "int128";
name: "";
type: "int128";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getProductIds";
outputs: readonly [{
internalType: "uint32[]";
name: "";
type: "uint32[]";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}];
name: "getSettlementState";
outputs: readonly [{
internalType: "int128";
name: "availableSettle";
type: "int128";
}, {
components: readonly [{
internalType: "int128";
name: "supply";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeFundingX18";
type: "int128";
}, {
internalType: "int128";
name: "cumulativeFundingPerLpX18";
type: "int128";
}, {
internalType: "int128";
name: "base";
type: "int128";
}, {
internalType: "int128";
name: "quote";
type: "int128";
}];
internalType: "struct IPerpEngine.LpState";
name: "lpState";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeFundingX18";
type: "int128";
}];
internalType: "struct IPerpEngine.LpBalance";
name: "lpBalance";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "cumulativeFundingLongX18";
type: "int128";
}, {
internalType: "int128";
name: "cumulativeFundingShortX18";
type: "int128";
}, {
internalType: "int128";
name: "availableSettle";
type: "int128";
}, {
internalType: "int128";
name: "openInterest";
type: "int128";
}];
internalType: "struct IPerpEngine.State";
name: "state";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "vQuoteBalance";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeFundingX18";
type: "int128";
}];
internalType: "struct IPerpEngine.Balance";
name: "balance";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}];
name: "getStateAndBalance";
outputs: readonly [{
components: readonly [{
internalType: "int128";
name: "cumulativeFundingLongX18";
type: "int128";
}, {
internalType: "int128";
name: "cumulativeFundingShortX18";
type: "int128";
}, {
internalType: "int128";
name: "availableSettle";
type: "int128";
}, {
internalType: "int128";
name: "openInterest";
type: "int128";
}];
internalType: "struct IPerpEngine.State";
name: "";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "vQuoteBalance";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeFundingX18";
type: "int128";
}];
internalType: "struct IPerpEngine.Balance";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}];
name: "getStatesAndBalances";
outputs: readonly [{
components: readonly [{
internalType: "int128";
name: "supply";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeFundingX18";
type: "int128";
}, {
internalType: "int128";
name: "cumulativeFundingPerLpX18";
type: "int128";
}, {
internalType: "int128";
name: "base";
type: "int128";
}, {
internalType: "int128";
name: "quote";
type: "int128";
}];
internalType: "struct IPerpEngine.LpState";
name: "";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeFundingX18";
type: "int128";
}];
internalType: "struct IPerpEngine.LpBalance";
name: "";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "cumulativeFundingLongX18";
type: "int128";
}, {
internalType: "int128";
name: "cumulativeFundingShortX18";
type: "int128";
}, {
internalType: "int128";
name: "availableSettle";
type: "int128";
}, {
internalType: "int128";
name: "openInterest";
type: "int128";
}];
internalType: "struct IPerpEngine.State";
name: "";
type: "tuple";
}, {
components: readonly [{
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "vQuoteBalance";
type: "int128";
}, {
internalType: "int128";
name: "lastCumulativeFundingX18";
type: "int128";
}];
internalType: "struct IPerpEngine.Balance";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}];
name: "hasBalance";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "_clearinghouse";
type: "address";
}, {
internalType: "address";
name: "_quote";
type: "address";
}, {
internalType: "address";
name: "_endpoint";
type: "address";
}, {
internalType: "address";
name: "_admin";
type: "address";
}, {
internalType: "address";
name: "_fees";
type: "address";
}];
name: "initialize";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "int128[]";
name: "openInterests";
type: "int128[]";
}];
name: "manualAssert";
outputs: readonly [];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}, {
internalType: "int128";
name: "amountBase";
type: "int128";
}, {
internalType: "int128";
name: "quoteAmountLow";
type: "int128";
}, {
internalType: "int128";
name: "quoteAmountHigh";
type: "int128";
}];
name: "mintLp";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}, {
internalType: "uint256";
name: "productIds";
type: "uint256";
}];
name: "settlePnl";
outputs: readonly [{
internalType: "int128";
name: "";
type: "int128";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "subaccount";
type: "bytes32";
}, {
internalType: "int128";
name: "insurance";
type: "int128";
}];
name: "socializeSubaccount";
outputs: readonly [{
internalType: "int128";
name: "";
type: "int128";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "int128";
name: "baseDelta";
type: "int128";
}, {
internalType: "int128";
name: "quoteDelta";
type: "int128";
}];
name: "swapLp";
outputs: readonly [{
internalType: "int128";
name: "";
type: "int128";
}, {
internalType: "int128";
name: "";
type: "int128";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "int128";
name: "amount";
type: "int128";
}, {
internalType: "int128";
name: "priceX18";
type: "int128";
}, {
internalType: "int128";
name: "sizeIncrement";
type: "int128";
}, {
internalType: "int128";
name: "lpSpreadX18";
type: "int128";
}];
name: "swapLp";
outputs: readonly [{
internalType: "int128";
name: "";
type: "int128";
}, {
internalType: "int128";
name: "";
type: "int128";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes";
name: "txn";
type: "bytes";
}];
name: "updateProduct";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint128";
name: "dt";
type: "uint128";
}, {
internalType: "int128[]";
name: "avgPriceDiffs";
type: "int128[]";
}];
name: "updateStates";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}];
foundationRewardsAirdrop: readonly [{
inputs: readonly [{
components: readonly [{
internalType: "uint32";
name: "week";
type: "uint32";
}, {
internalType: "uint256";
name: "totalAmount";
type: "uint256";
}, {
internalType: "bytes32[]";
name: "proof";
type: "bytes32[]";
}];
internalType: "struct IArbAirdrop.ClaimProof[]";
name: "claimProofs";
type: "tuple[]";
}];
name: "claim";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getClaimed";
outputs: readonly [{
internalType: "uint256[]";
name: "";
type: "uint256[]";
}];
stateMutability: "view";
type: "function";
}];
withdrawPool: readonly [{
inputs: readonly [];
stateMutability: "nonpayable";
type: "constructor";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint8";
name: "version";
type: "uint8";
}];
name: "Initialized";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "previousOwner";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "OwnershipTransferred";
type: "event";
}, {
inputs: readonly [{
internalType: "uint64[]";
name: "idxs";
type: "uint64[]";
}];
name: "checkMarkedIdxs";
outputs: readonly [{
internalType: "bool[]";
name: "";
type: "bool[]";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32[]";
name: "productIds";
type: "uint32[]";
}];
name: "checkProductBalances";
outputs: readonly [{
internalType: "uint256[]";
name: "";
type: "uint256[]";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "contract IERC20Base";
name: "token";
type: "address";
}, {
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "uint128";
name: "amount";
type: "uint128";
}];
name: "fastWithdrawalFeeAmount";
outputs: readonly [{
internalType: "int128";
name: "";
type: "int128";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "";
type: "uint32";
}];
name: "fees";
outputs: readonly [{
internalType: "int128";
name: "";
type: "int128";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "_clearinghouse";
type: "address";
}, {
internalType: "address";
name: "_verifier";
type: "address";
}];
name: "initialize";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint64";
name: "";
type: "uint64";
}];
name: "markedIdxs";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "owner";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "productId";
type: "uint32";
}, {
internalType: "uint128";
name: "amount";
type: "uint128";
}, {
internalType: "address";
name: "sendTo";
type: "address";
}];
name: "removeLiquidity";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "renounceOwnership";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint64";
name: "idx";
type: "uint64";
}, {
internalType: "bytes";
name: "transaction";
type: "bytes";
}, {
internalType: "bytes[]";
name: "signatures";
type: "bytes[]";
}];
name: "submitFastWithdrawal";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "contract IERC20Base";
name: "token";
type: "address";
}, {
internalType: "address";
name: "sendTo";
type: "address";
}, {
internalType: "uint128";
name: "amount";
type: "uint128";
}, {
internalType: "uint64";
name: "idx";
type: "uint64";
}];
name: "submitWithdrawal";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "transferOwnership";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}];
vrtxToken: readonly [{
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "owner";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "spender";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "value";
type: "uint256";
}];
name: "Approval";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "from";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "to";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "value";
type: "uint256";
}];
name: "Transfer";
type: "event";
}, {
inputs: readonly [{
internalType: "address";
name: "owner";
type: "address";
}, {
internalType: "address";
name: "spender";
type: "address";
}];
name: "allowance";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "spender";
type: "address";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "approve";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "balanceOf";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "totalSupply";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "to";
type: "address";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "transfer";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "from";
type: "address";
}, {
internalType: "address";
name: "to";
type: "address";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "transferFrom";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "nonpayable";
type: "function";
}];
vrtxAirdrop: readonly [{
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "account";
type: "address";
}, {
indexed: false;
internalType: "uint32";
name: "epoch";
type: "uint32";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "ClaimVrtx";
type: "event";
}, {
inputs: readonly [{
internalType: "uint32";
name: "epoch";
type: "uint32";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "uint256";
name: "totalAmount";
type: "uint256";
}, {
internalType: "bytes32[]";
name: "proof";
type: "bytes32[]";
}];
name: "claim";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint32";
name: "epoch";
type: "uint32";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "uint256";
name: "totalAmount";
type: "uint256";
}, {
internalType: "bytes32[]";
name: "proof";
type: "bytes32[]";
}];
name: "claimAndStake";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "uint256";
name: "totalAmount";
type: "uint256";
}, {
internalType: "bytes32[]";
name: "proof";
type: "bytes32[]";
}];
name: "claimToLBA";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getClaimed";
outputs: readonly [{
internalType: "uint256[]";
name: "";
type: "uint256[]";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getClaimingDeadlines";
outputs: readonly [{
internalType: "uint64[]";
name: "";
type: "uint64[]";
}];
stateMutability: "view";
type: "function";
}];
vrtxLba: readonly [{
inputs: readonly [];
name: "claimRewards";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "depositUsdc";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "depositVrtx";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "distributeRewards";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getClaimableRewards";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getClaimedRewards";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getConfig";
outputs: readonly [{
components: readonly [{
internalType: "uint64";
name: "depositStartTime";
type: "uint64";
}, {
internalType: "uint64";
name: "depositEndTime";
type: "uint64";
}, {
internalType: "uint64";
name: "withdrawEndTime";
type: "uint64";
}, {
internalType: "uint64";
name: "lpVestStartTime";
type: "uint64";
}, {
internalType: "uint64";
name: "lpVestEndTime";
type: "uint64";
}];
internalType: "struct ILBA.Config";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getDepositedUsdc";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getDepositedVrtx";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getLockedLpBalance";
outputs: readonly [{
internalType: "uint256";
name: "lockedLpBalance";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getLpBalance";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getMaxWithdrawableUsdc";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getStage";
outputs: readonly [{
internalType: "enum ILBA.Stage";
name: "stage";
type: "uint8";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getState";
outputs: readonly [{
components: readonly [{
internalType: "uint256";
name: "totalVrtxDeposited";
type: "uint256";
}, {
internalType: "uint256";
name: "totalUsdcDeposited";
type: "uint256";
}, {
internalType: "uint256";
name: "totalLpMinted";
type: "uint256";
}, {
internalType: "uint256";
name: "totalLpWithdrawn";
type: "uint256";
}, {
internalType: "uint256";
name: "cumulativeRewardsPerShareX18";
type: "uint256";
}];
internalType: "struct ILBA.State";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getVrtxInitialPriceX18";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getWithdrawableLpBalance";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "lpAmount";
type: "uint256";
}];
name: "withdrawLiquidity";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "withdrawUsdc";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}];
vrtxVesting: readonly [{
inputs: readonly [];
name: "claim";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getClaimable";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint64";
name: "vestingScheduleId";
type: "uint64";
}];
name: "getVestable";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint64";
name: "vestingScheduleId";
type: "uint64";
}];
name: "getVested";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "uint64";
name: "period";
type: "uint64";
}];
name: "registerVesting";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}];
vrtxStaking: readonly [{
inputs: readonly [];
name: "claimUsdc";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "claimUsdcAndStake";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "claimVrtx";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getEstimatedVrtxToStake";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "getGlobalRewardsBreakdown";
outputs: readonly [{
components: readonly [{
internalType: "uint64";
name: "distributionTime";
type: "uint64";
}, {
internalType: "uint256";
name: "rewardsAmount";
type: "uint256";
}];
internalType: "struct IStaking.GlobalRewardsBreakdown[]";
name: "";
type: "tuple[]";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getLastActionTimes";
outputs: readonly [{
components: readonly [{
internalType: "uint64";
name: "lastStakeTime";
type: "uint64";
}, {
internalType: "uint64";
name: "lastWithdrawTime";
type: "uint64";
}];
internalType: "struct IStaking.LastActionTimes";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getRewardsBreakdown";
outputs: readonly [{
internalType: "uint256[]";
name: "";
type: "uint256[]";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getScore";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getTotalScore";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getTotalVrtxStaked";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getUsdcClaimable";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getV2Bonus";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getV2BonusDeadline";
outputs: readonly [{
internalType: "uint64";
name: "";
type: "uint64";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getV2StartTime";
outputs: readonly [{
internalType: "uint64";
name: "";
type: "uint64";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getVrtxStaked";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getWithdrawLockingTime";
outputs: readonly [{
internalType: "uint64";
name: "";
type: "uint64";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getWithdrawnVrtxStates";
outputs: readonly [{
components: readonly [{
internalType: "uint256";
name: "vrtxClaimable";
type: "uint256";
}, {
internalType: "uint256";
name: "vrtxPendingUnlock";
type: "uint256";
}];
internalType: "struct IStaking.WithdrawnVrtxStates";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "migrateToV2";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "staker";
type: "address";
}];
name: "migrateToV2WithNewWallet";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "stake";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "staker";
type: "address";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "stakeAs";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "withdraw";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}];
vrtxStakingV2: readonly [{
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "account";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "wallet";
type: "address";
}];
name: "ConnectTradingWallet";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "account";
type: "address";
}, {
indexed: false;
internalType: "int128";
name: "vrtxDelta";
type: "int128";
}, {
indexed: false;
internalType: "int128";
name: "liquidDelta";
type: "int128";
}];
name: "ModifyStake";
type: "event";
}, {
inputs: readonly [];
name: "claimWithdraw";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "wallet";
type: "address";
}];
name: "connectTradingWallet";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getConfig";
outputs: readonly [{
components: readonly [{
internalType: "uint64";
name: "withdrawLockingTime";
type: "uint64";
}, {
internalType: "uint64";
name: "minimumStakingPeriod";
type: "uint64";
}, {
internalType: "uint128";
name: "toDistributeRatio";
type: "uint128";
}, {
internalType: "uint128";
name: "toTreasuryRatio";
type: "uint128";
}];
internalType: "struct IStakingV2.Config";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getDefaultConfig";
outputs: readonly [{
components: readonly [{
internalType: "uint64";
name: "withdrawLockingTime";
type: "uint64";
}, {
internalType: "uint64";
name: "minimumStakingPeriod";
type: "uint64";
}, {
internalType: "uint128";
name: "toDistributeRatio";
type: "uint128";
}, {
internalType: "uint128";
name: "toTreasuryRatio";
type: "uint128";
}];
internalType: "struct IStakingV2.Config";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getGlobalYieldsBreakdown";
outputs: readonly [{
components: readonly [{
internalType: "uint64";
name: "distributionTime";
type: "uint64";
}, {
internalType: "uint128";
name: "baseYieldAmount";
type: "uint128";
}, {
internalType: "uint128";
name: "feesYieldAmount";
type: "uint128";
}, {
internalType: "uint128";
name: "totalVrtxBalance";
type: "uint128";
}, {
internalType: "uint128";
name: "usdcAmount";
type: "uint128";
}];
internalType: "struct IStakingV2.GlobalYieldsBreakdown[]";
name: "";
type: "tuple[]";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getLastActionTimes";
outputs: readonly [{
components: readonly [{
internalType: "uint64";
name: "lastStakeTime";
type: "uint64";
}, {
internalType: "uint64";
name: "lastWithdrawTime";
type: "uint64";
}];
internalType: "struct IStakingV2.LastActionTimes";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getMigrationBonusPool";
outputs: readonly [{
internalType: "uint128";
name: "";
type: "uint128";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getReleaseSchedule";
outputs: readonly [{
components: readonly [{
internalType: "uint64";
name: "releaseTime";
type: "uint64";
}, {
internalType: "uint128";
name: "amount";
type: "uint128";
}];
internalType: "struct IStakingV2.ReleaseSchedule";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getState";
outputs: readonly [{
components: readonly [{
internalType: "uint128";
name: "cumulativeStakedAmount";
type: "uint128";
}, {
internalType: "uint128";
name: "cumulativeWithdrawnAmount";
type: "uint128";
}, {
internalType: "uint128";
name: "cumulativeBurnedAmount";
type: "uint128";
}, {
internalType: "uint128";
name: "currentStakedAmount";
type: "uint128";
}];
internalType: "struct IStakingV2.State";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getTotalVrtxBalance";
outputs: readonly [{
internalType: "uint128";
name: "";
type: "uint128";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getTradingWallet";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getVrtxBalance";
outputs: readonly [{
internalType: "uint128";
name: "";
type: "uint128";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "getWithdrawableTime";
outputs: readonly [{
internalType: "uint64";
name: "";
type: "uint64";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "staker";
type: "address";
}, {
internalType: "uint128";
name: "amount";
type: "uint128";
}, {
internalType: "uint128";
name: "bonus";
type: "uint128";
}];
name: "migrate";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint128";
name: "amount";
type: "uint128";
}];
name: "stake";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "staker";
type: "address";
}, {
internalType: "uint128";
name: "amount";
type: "uint128";
}];
name: "stakeAs";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "withdraw";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "withdrawSlow";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}];
} = ...