NADO_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";
},
];
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";
},
];
} = ...
Type declaration
Readonly
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";
},
]
Readonly
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";
},
]
Readonly
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";
},
]
Readonly
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";
},
]
Readonly
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";
},
]
Readonly
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";
},
]