[
    {
        "anonymous": false,
        "inputs": [
            { "indexed": true, "internalType": "address", "name": "user", "type": "address" },
            { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" },
            { "indexed": false, "internalType": "address", "name": "major", "type": "address" },
            { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" },
            { "indexed": false, "internalType": "address", "name": "minor", "type": "address" },
            { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }
        ],
        "name": "Disenchanted",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            { "indexed": true, "internalType": "address", "name": "user", "type": "address" },
            { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" },
            { "indexed": false, "internalType": "uint256", "name": "index", "type": "uint256" },
            { "indexed": false, "internalType": "uint128", "name": "rate", "type": "uint128" },
            { "indexed": false, "internalType": "uint16", "name": "objClassExt", "type": "uint16" },
            { "indexed": false, "internalType": "uint16", "name": "class", "type": "uint16" },
            { "indexed": false, "internalType": "uint16", "name": "grade", "type": "uint16" },
            { "indexed": false, "internalType": "uint16", "name": "prefer", "type": "uint16" },
            { "indexed": false, "internalType": "address", "name": "major", "type": "address" },
            { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" },
            { "indexed": false, "internalType": "address", "name": "minor", "type": "address" },
            { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" },
            { "indexed": false, "internalType": "uint256", "name": "now", "type": "uint256" }
        ],
        "name": "Enchanced",
        "type": "event"
    },
    {
        "anonymous": true,
        "inputs": [
            { "indexed": true, "internalType": "bytes4", "name": "sig", "type": "bytes4" },
            { "indexed": true, "internalType": "address", "name": "guy", "type": "address" },
            { "indexed": true, "internalType": "bytes32", "name": "foo", "type": "bytes32" },
            { "indexed": true, "internalType": "bytes32", "name": "bar", "type": "bytes32" },
            { "indexed": false, "internalType": "uint256", "name": "wad", "type": "uint256" },
            { "indexed": false, "internalType": "bytes", "name": "fax", "type": "bytes" }
        ],
        "name": "LogNote",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [{ "indexed": true, "internalType": "address", "name": "authority", "type": "address" }],
        "name": "LogSetAuthority",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [{ "indexed": true, "internalType": "address", "name": "owner", "type": "address" }],
        "name": "LogSetOwner",
        "type": "event"
    },
    {
        "inputs": [],
        "name": "CONTRACT_ELEMENT_TOKEN",
        "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "CONTRACT_FORMULA",
        "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "CONTRACT_LP_ELEMENT_TOKEN",
        "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "CONTRACT_METADATA_TELLER",
        "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "CONTRACT_OBJECT_OWNERSHIP",
        "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "RATE_PRECISION",
        "outputs": [{ "internalType": "uint128", "name": "", "type": "uint128" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "authority",
        "outputs": [{ "internalType": "contract DSAuthority", "name": "", "type": "address" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "uint256", "name": "_id", "type": "uint256" },
            { "internalType": "uint256", "name": "_depth", "type": "uint256" }
        ],
        "name": "disenchant",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "uint256", "name": "_index", "type": "uint256" },
            { "internalType": "uint256", "name": "_id", "type": "uint256" },
            { "internalType": "address", "name": "_token", "type": "address" }
        ],
        "name": "enchant",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "uint256", "name": "_tokenId", "type": "uint256" }],
        "name": "getBaseInfo",
        "outputs": [
            { "internalType": "uint16", "name": "", "type": "uint16" },
            { "internalType": "uint16", "name": "", "type": "uint16" },
            { "internalType": "uint16", "name": "", "type": "uint16" }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "uint256", "name": "_tokenId", "type": "uint256" }],
        "name": "getEnchantedInfo",
        "outputs": [
            { "internalType": "uint16", "name": "", "type": "uint16" },
            { "internalType": "bool", "name": "", "type": "bool" },
            { "internalType": "address", "name": "", "type": "address" },
            { "internalType": "uint256", "name": "", "type": "uint256" },
            { "internalType": "address", "name": "", "type": "address" },
            { "internalType": "uint256", "name": "", "type": "uint256" }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "uint256", "name": "_tokenId", "type": "uint256" }],
        "name": "getObjectClassExt",
        "outputs": [{ "internalType": "uint16", "name": "", "type": "uint16" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "uint256", "name": "_tokenId", "type": "uint256" }],
        "name": "getPrefer",
        "outputs": [{ "internalType": "uint16", "name": "", "type": "uint16" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "uint256", "name": "_tokenId", "type": "uint256" },
            { "internalType": "uint256", "name": "_element", "type": "uint256" }
        ],
        "name": "getRate",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "address", "name": "_registry", "type": "address" }],
        "name": "initialize",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "lastItemObjectId",
        "outputs": [{ "internalType": "uint128", "name": "", "type": "uint128" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "owner",
        "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "registry",
        "outputs": [{ "internalType": "contract ISettingsRegistry", "name": "", "type": "address" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "contract DSAuthority", "name": "authority_", "type": "address" }],
        "name": "setAuthority",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "address", "name": "owner_", "type": "address" }],
        "name": "setOwner",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    { "inputs": [], "name": "start", "outputs": [], "stateMutability": "nonpayable", "type": "function" },
    { "inputs": [], "name": "stop", "outputs": [], "stateMutability": "nonpayable", "type": "function" },
    {
        "inputs": [],
        "name": "stopped",
        "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "name": "tokenId2Item",
        "outputs": [
            { "internalType": "uint256", "name": "index", "type": "uint256" },
            { "internalType": "uint128", "name": "rate", "type": "uint128" },
            { "internalType": "uint16", "name": "objClassExt", "type": "uint16" },
            { "internalType": "uint16", "name": "class", "type": "uint16" },
            { "internalType": "uint16", "name": "grade", "type": "uint16" },
            { "internalType": "uint16", "name": "prefer", "type": "uint16" },
            { "internalType": "address", "name": "major", "type": "address" },
            { "internalType": "uint256", "name": "id", "type": "uint256" },
            { "internalType": "address", "name": "minor", "type": "address" },
            { "internalType": "uint256", "name": "amount", "type": "uint256" }
        ],
        "stateMutability": "view",
        "type": "function"
    }
]
