/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Contract, utils } from "ethers";
const _abi = [
    {
        type: "function",
        name: "HYPE_TOKEN_INDEX",
        inputs: [],
        outputs: [
            {
                name: "",
                type: "uint64",
                internalType: "uint64",
            },
        ],
        stateMutability: "view",
    },
    {
        type: "function",
        name: "USDC_TOKEN_INDEX",
        inputs: [],
        outputs: [
            {
                name: "",
                type: "uint64",
                internalType: "uint64",
            },
        ],
        stateMutability: "view",
    },
    {
        type: "function",
        name: "coreUserExists",
        inputs: [
            {
                name: "account",
                type: "address",
                internalType: "address",
            },
        ],
        outputs: [
            {
                name: "",
                type: "bool",
                internalType: "bool",
            },
        ],
        stateMutability: "nonpayable",
    },
    {
        type: "function",
        name: "forceAccountActivation",
        inputs: [
            {
                name: "account",
                type: "address",
                internalType: "address",
            },
        ],
        outputs: [],
        stateMutability: "nonpayable",
    },
    {
        type: "function",
        name: "forceDelegation",
        inputs: [
            {
                name: "account",
                type: "address",
                internalType: "address",
            },
            {
                name: "validator",
                type: "address",
                internalType: "address",
            },
            {
                name: "amount",
                type: "uint64",
                internalType: "uint64",
            },
            {
                name: "lockedUntilTimestamp",
                type: "uint64",
                internalType: "uint64",
            },
        ],
        outputs: [],
        stateMutability: "nonpayable",
    },
    {
        type: "function",
        name: "forcePerpBalance",
        inputs: [
            {
                name: "account",
                type: "address",
                internalType: "address",
            },
            {
                name: "usd",
                type: "uint64",
                internalType: "uint64",
            },
        ],
        outputs: [],
        stateMutability: "payable",
    },
    {
        type: "function",
        name: "forceSpot",
        inputs: [
            {
                name: "account",
                type: "address",
                internalType: "address",
            },
            {
                name: "token",
                type: "uint64",
                internalType: "uint64",
            },
            {
                name: "_wei",
                type: "uint64",
                internalType: "uint64",
            },
        ],
        outputs: [],
        stateMutability: "payable",
    },
    {
        type: "function",
        name: "forceStaking",
        inputs: [
            {
                name: "account",
                type: "address",
                internalType: "address",
            },
            {
                name: "_wei",
                type: "uint64",
                internalType: "uint64",
            },
        ],
        outputs: [],
        stateMutability: "payable",
    },
    {
        type: "function",
        name: "forceTokenInfo",
        inputs: [
            {
                name: "index",
                type: "uint64",
                internalType: "uint64",
            },
            {
                name: "name",
                type: "string",
                internalType: "string",
            },
            {
                name: "evmContract",
                type: "address",
                internalType: "address",
            },
            {
                name: "szDecimals",
                type: "uint8",
                internalType: "uint8",
            },
            {
                name: "weiDecimals",
                type: "uint8",
                internalType: "uint8",
            },
            {
                name: "evmExtraWeiDecimals",
                type: "int8",
                internalType: "int8",
            },
        ],
        outputs: [],
        stateMutability: "nonpayable",
    },
    {
        type: "function",
        name: "forceVaultEquity",
        inputs: [
            {
                name: "account",
                type: "address",
                internalType: "address",
            },
            {
                name: "vault",
                type: "address",
                internalType: "address",
            },
            {
                name: "usd",
                type: "uint64",
                internalType: "uint64",
            },
            {
                name: "lockedUntilTimestamp",
                type: "uint64",
                internalType: "uint64",
            },
        ],
        outputs: [],
        stateMutability: "payable",
    },
    {
        type: "function",
        name: "readAccountMarginSummary",
        inputs: [
            {
                name: "user",
                type: "address",
                internalType: "address",
            },
        ],
        outputs: [
            {
                name: "",
                type: "tuple",
                internalType: "struct PrecompileLib.AccountMarginSummary",
                components: [
                    {
                        name: "accountValue",
                        type: "int64",
                        internalType: "int64",
                    },
                    {
                        name: "marginUsed",
                        type: "uint64",
                        internalType: "uint64",
                    },
                    {
                        name: "ntlPos",
                        type: "uint64",
                        internalType: "uint64",
                    },
                    {
                        name: "rawUsd",
                        type: "int64",
                        internalType: "int64",
                    },
                ],
            },
        ],
        stateMutability: "view",
    },
    {
        type: "function",
        name: "readDelegation",
        inputs: [
            {
                name: "user",
                type: "address",
                internalType: "address",
            },
            {
                name: "validator",
                type: "address",
                internalType: "address",
            },
        ],
        outputs: [
            {
                name: "delegation",
                type: "tuple",
                internalType: "struct PrecompileLib.Delegation",
                components: [
                    {
                        name: "validator",
                        type: "address",
                        internalType: "address",
                    },
                    {
                        name: "amount",
                        type: "uint64",
                        internalType: "uint64",
                    },
                    {
                        name: "lockedUntilTimestamp",
                        type: "uint64",
                        internalType: "uint64",
                    },
                ],
            },
        ],
        stateMutability: "view",
    },
    {
        type: "function",
        name: "readDelegations",
        inputs: [
            {
                name: "user",
                type: "address",
                internalType: "address",
            },
        ],
        outputs: [
            {
                name: "userDelegations",
                type: "tuple[]",
                internalType: "struct PrecompileLib.Delegation[]",
                components: [
                    {
                        name: "validator",
                        type: "address",
                        internalType: "address",
                    },
                    {
                        name: "amount",
                        type: "uint64",
                        internalType: "uint64",
                    },
                    {
                        name: "lockedUntilTimestamp",
                        type: "uint64",
                        internalType: "uint64",
                    },
                ],
            },
        ],
        stateMutability: "view",
    },
    {
        type: "function",
        name: "readDelegatorSummary",
        inputs: [
            {
                name: "user",
                type: "address",
                internalType: "address",
            },
        ],
        outputs: [
            {
                name: "summary",
                type: "tuple",
                internalType: "struct PrecompileLib.DelegatorSummary",
                components: [
                    {
                        name: "delegated",
                        type: "uint64",
                        internalType: "uint64",
                    },
                    {
                        name: "undelegated",
                        type: "uint64",
                        internalType: "uint64",
                    },
                    {
                        name: "totalPendingWithdrawal",
                        type: "uint64",
                        internalType: "uint64",
                    },
                    {
                        name: "nPendingWithdrawals",
                        type: "uint64",
                        internalType: "uint64",
                    },
                ],
            },
        ],
        stateMutability: "view",
    },
    {
        type: "function",
        name: "readMarkPx",
        inputs: [
            {
                name: "perp",
                type: "uint32",
                internalType: "uint32",
            },
        ],
        outputs: [
            {
                name: "",
                type: "uint64",
                internalType: "uint64",
            },
        ],
        stateMutability: "nonpayable",
    },
    {
        type: "function",
        name: "readPosition",
        inputs: [
            {
                name: "user",
                type: "address",
                internalType: "address",
            },
            {
                name: "perp",
                type: "uint16",
                internalType: "uint16",
            },
        ],
        outputs: [
            {
                name: "",
                type: "tuple",
                internalType: "struct PrecompileLib.Position",
                components: [
                    {
                        name: "szi",
                        type: "int64",
                        internalType: "int64",
                    },
                    {
                        name: "entryNtl",
                        type: "uint64",
                        internalType: "uint64",
                    },
                    {
                        name: "isolatedRawUsd",
                        type: "int64",
                        internalType: "int64",
                    },
                    {
                        name: "leverage",
                        type: "uint32",
                        internalType: "uint32",
                    },
                    {
                        name: "isIsolated",
                        type: "bool",
                        internalType: "bool",
                    },
                ],
            },
        ],
        stateMutability: "view",
    },
    {
        type: "function",
        name: "readSpotBalance",
        inputs: [
            {
                name: "account",
                type: "address",
                internalType: "address",
            },
            {
                name: "token",
                type: "uint64",
                internalType: "uint64",
            },
        ],
        outputs: [
            {
                name: "",
                type: "tuple",
                internalType: "struct PrecompileLib.SpotBalance",
                components: [
                    {
                        name: "total",
                        type: "uint64",
                        internalType: "uint64",
                    },
                    {
                        name: "hold",
                        type: "uint64",
                        internalType: "uint64",
                    },
                    {
                        name: "entryNtl",
                        type: "uint64",
                        internalType: "uint64",
                    },
                ],
            },
        ],
        stateMutability: "nonpayable",
    },
    {
        type: "function",
        name: "readSpotPx",
        inputs: [
            {
                name: "spotMarketId",
                type: "uint32",
                internalType: "uint32",
            },
        ],
        outputs: [
            {
                name: "",
                type: "uint64",
                internalType: "uint64",
            },
        ],
        stateMutability: "view",
    },
    {
        type: "function",
        name: "readTokenInfo",
        inputs: [
            {
                name: "index",
                type: "uint64",
                internalType: "uint64",
            },
        ],
        outputs: [
            {
                name: "",
                type: "tuple",
                internalType: "struct PrecompileLib.TokenInfo",
                components: [
                    {
                        name: "name",
                        type: "string",
                        internalType: "string",
                    },
                    {
                        name: "spots",
                        type: "uint64[]",
                        internalType: "uint64[]",
                    },
                    {
                        name: "deployerTradingFeeShare",
                        type: "uint64",
                        internalType: "uint64",
                    },
                    {
                        name: "deployer",
                        type: "address",
                        internalType: "address",
                    },
                    {
                        name: "evmContract",
                        type: "address",
                        internalType: "address",
                    },
                    {
                        name: "szDecimals",
                        type: "uint8",
                        internalType: "uint8",
                    },
                    {
                        name: "weiDecimals",
                        type: "uint8",
                        internalType: "uint8",
                    },
                    {
                        name: "evmExtraWeiDecimals",
                        type: "int8",
                        internalType: "int8",
                    },
                ],
            },
        ],
        stateMutability: "view",
    },
    {
        type: "function",
        name: "readUserVaultEquity",
        inputs: [
            {
                name: "user",
                type: "address",
                internalType: "address",
            },
            {
                name: "vault",
                type: "address",
                internalType: "address",
            },
        ],
        outputs: [
            {
                name: "",
                type: "tuple",
                internalType: "struct PrecompileLib.UserVaultEquity",
                components: [
                    {
                        name: "equity",
                        type: "uint64",
                        internalType: "uint64",
                    },
                    {
                        name: "lockedUntilTimestamp",
                        type: "uint64",
                        internalType: "uint64",
                    },
                ],
            },
        ],
        stateMutability: "view",
    },
    {
        type: "function",
        name: "readWithdrawable",
        inputs: [
            {
                name: "account",
                type: "address",
                internalType: "address",
            },
        ],
        outputs: [
            {
                name: "",
                type: "tuple",
                internalType: "struct PrecompileLib.Withdrawable",
                components: [
                    {
                        name: "withdrawable",
                        type: "uint64",
                        internalType: "uint64",
                    },
                ],
            },
        ],
        stateMutability: "nonpayable",
    },
    {
        type: "function",
        name: "registerTokenInfo",
        inputs: [
            {
                name: "index",
                type: "uint64",
                internalType: "uint64",
            },
        ],
        outputs: [],
        stateMutability: "nonpayable",
    },
    {
        type: "function",
        name: "registerValidator",
        inputs: [
            {
                name: "validator",
                type: "address",
                internalType: "address",
            },
        ],
        outputs: [],
        stateMutability: "nonpayable",
    },
    {
        type: "function",
        name: "tokenExists",
        inputs: [
            {
                name: "token",
                type: "uint32",
                internalType: "uint32",
            },
        ],
        outputs: [
            {
                name: "",
                type: "bool",
                internalType: "bool",
            },
        ],
        stateMutability: "view",
    },
    {
        type: "error",
        name: "PrecompileLib__AccountMarginSummaryPrecompileFailed",
        inputs: [],
    },
    {
        type: "error",
        name: "PrecompileLib__SpotPxPrecompileFailed",
        inputs: [],
    },
];
export class CoreView__factory {
    static abi = _abi;
    static createInterface() {
        return new utils.Interface(_abi);
    }
    static connect(address, signerOrProvider) {
        return new Contract(address, _abi, signerOrProvider);
    }
}
//# sourceMappingURL=CoreView__factory.js.map