[
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "name": "admin",
                "type": "address"
            }
        ],
        "name": "CommitOwnership",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "name": "admin",
                "type": "address"
            }
        ],
        "name": "ApplyOwnership",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "name": "name",
                "type": "string"
            },
            {
                "indexed": false,
                "name": "type_id",
                "type": "int128"
            }
        ],
        "name": "AddType",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "name": "type_id",
                "type": "int128"
            },
            {
                "indexed": false,
                "name": "time",
                "type": "uint256"
            },
            {
                "indexed": false,
                "name": "weight",
                "type": "uint256"
            },
            {
                "indexed": false,
                "name": "total_weight",
                "type": "uint256"
            }
        ],
        "name": "NewTypeWeight",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "name": "gauge_address",
                "type": "address"
            },
            {
                "indexed": false,
                "name": "time",
                "type": "uint256"
            },
            {
                "indexed": false,
                "name": "weight",
                "type": "uint256"
            },
            {
                "indexed": false,
                "name": "total_weight",
                "type": "uint256"
            }
        ],
        "name": "NewGaugeWeight",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "name": "time",
                "type": "uint256"
            },
            {
                "indexed": false,
                "name": "user",
                "type": "address"
            },
            {
                "indexed": false,
                "name": "gauge_addr",
                "type": "address"
            },
            {
                "indexed": false,
                "name": "weight",
                "type": "uint256"
            }
        ],
        "name": "VoteForGauge",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "name": "addr",
                "type": "address"
            },
            {
                "indexed": false,
                "name": "gauge_type",
                "type": "int128"
            },
            {
                "indexed": false,
                "name": "weight",
                "type": "uint256"
            }
        ],
        "name": "NewGauge",
        "type": "event"
    },
    {
        "inputs": [
            {
                "name": "_token",
                "type": "address"
            },
            {
                "name": "_voting_escrow",
                "type": "address"
            }
        ],
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "constructor"
    },
    {
        "gas": 37568,
        "inputs": [
            {
                "name": "addr",
                "type": "address"
            }
        ],
        "name": "commit_transfer_ownership",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "gas": 38407,
        "inputs": [],
        "name": "apply_transfer_ownership",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "gas": 1687,
        "inputs": [
            {
                "name": "_addr",
                "type": "address"
            }
        ],
        "name": "gauge_types",
        "outputs": [
            {
                "name": "",
                "type": "int128"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "name": "addr",
                "type": "address"
            },
            {
                "name": "gauge_type",
                "type": "int128"
            }
        ],
        "name": "add_gauge",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "name": "addr",
                "type": "address"
            },
            {
                "name": "gauge_type",
                "type": "int128"
            },
            {
                "name": "weight",
                "type": "uint256"
            }
        ],
        "name": "add_gauge",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "gas": 18033775892,
        "inputs": [],
        "name": "checkpoint",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "gas": 18087670272,
        "inputs": [
            {
                "name": "addr",
                "type": "address"
            }
        ],
        "name": "checkpoint_gauge",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "name": "addr",
                "type": "address"
            }
        ],
        "name": "gauge_relative_weight",
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "name": "addr",
                "type": "address"
            },
            {
                "name": "time",
                "type": "uint256"
            }
        ],
        "name": "gauge_relative_weight",
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "name": "addr",
                "type": "address"
            }
        ],
        "name": "gauge_relative_weight_write",
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "name": "addr",
                "type": "address"
            },
            {
                "name": "time",
                "type": "uint256"
            }
        ],
        "name": "gauge_relative_weight_write",
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "name": "_name",
                "type": "string"
            }
        ],
        "name": "add_type",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "name": "_name",
                "type": "string"
            },
            {
                "name": "weight",
                "type": "uint256"
            }
        ],
        "name": "add_type",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "gas": 36246292943,
        "inputs": [
            {
                "name": "type_id",
                "type": "int128"
            },
            {
                "name": "weight",
                "type": "uint256"
            }
        ],
        "name": "change_type_weight",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "gas": 36354153634,
        "inputs": [
            {
                "name": "addr",
                "type": "address"
            },
            {
                "name": "weight",
                "type": "uint256"
            }
        ],
        "name": "change_gauge_weight",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "gas": 18142043388,
        "inputs": [
            {
                "name": "_gauge_addr",
                "type": "address"
            },
            {
                "name": "_user_weight",
                "type": "uint256"
            }
        ],
        "name": "vote_for_gauge_weights",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "gas": 2945,
        "inputs": [
            {
                "name": "addr",
                "type": "address"
            }
        ],
        "name": "get_gauge_weight",
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "gas": 2978,
        "inputs": [
            {
                "name": "type_id",
                "type": "int128"
            }
        ],
        "name": "get_type_weight",
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "gas": 2603,
        "inputs": [],
        "name": "get_total_weight",
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "gas": 3110,
        "inputs": [
            {
                "name": "type_id",
                "type": "int128"
            }
        ],
        "name": "get_weights_sum_per_type",
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "gas": 1751,
        "inputs": [],
        "name": "admin",
        "outputs": [
            {
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "gas": 1781,
        "inputs": [],
        "name": "future_admin",
        "outputs": [
            {
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "gas": 1811,
        "inputs": [],
        "name": "token",
        "outputs": [
            {
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "gas": 1841,
        "inputs": [],
        "name": "voting_escrow",
        "outputs": [
            {
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "gas": 1871,
        "inputs": [],
        "name": "n_gauge_types",
        "outputs": [
            {
                "name": "",
                "type": "int128"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "gas": 1901,
        "inputs": [],
        "name": "n_gauges",
        "outputs": [
            {
                "name": "",
                "type": "int128"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "gas": 8629,
        "inputs": [
            {
                "name": "arg0",
                "type": "int128"
            }
        ],
        "name": "gauge_type_names",
        "outputs": [
            {
                "name": "",
                "type": "string"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "gas": 2070,
        "inputs": [
            {
                "name": "arg0",
                "type": "uint256"
            }
        ],
        "name": "gauges",
        "outputs": [
            {
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "gas": 4637,
        "inputs": [
            {
                "name": "arg0",
                "type": "address"
            },
            {
                "name": "arg1",
                "type": "address"
            }
        ],
        "name": "vote_user_slopes",
        "outputs": [
            {
                "name": "slope",
                "type": "uint256"
            },
            {
                "name": "power",
                "type": "uint256"
            },
            {
                "name": "end",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "gas": 2236,
        "inputs": [
            {
                "name": "arg0",
                "type": "address"
            }
        ],
        "name": "vote_user_power",
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "gas": 2481,
        "inputs": [
            {
                "name": "arg0",
                "type": "address"
            },
            {
                "name": "arg1",
                "type": "address"
            }
        ],
        "name": "last_user_vote",
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "gas": 3645,
        "inputs": [
            {
                "name": "arg0",
                "type": "address"
            },
            {
                "name": "arg1",
                "type": "uint256"
            }
        ],
        "name": "points_weight",
        "outputs": [
            {
                "name": "bias",
                "type": "uint256"
            },
            {
                "name": "slope",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "gas": 2326,
        "inputs": [
            {
                "name": "arg0",
                "type": "address"
            }
        ],
        "name": "time_weight",
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "gas": 3786,
        "inputs": [
            {
                "name": "arg0",
                "type": "int128"
            },
            {
                "name": "arg1",
                "type": "uint256"
            }
        ],
        "name": "points_sum",
        "outputs": [
            {
                "name": "bias",
                "type": "uint256"
            },
            {
                "name": "slope",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "gas": 2280,
        "inputs": [
            {
                "name": "arg0",
                "type": "uint256"
            }
        ],
        "name": "time_sum",
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "gas": 2316,
        "inputs": [
            {
                "name": "arg0",
                "type": "uint256"
            }
        ],
        "name": "points_total",
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "gas": 2231,
        "inputs": [],
        "name": "time_total",
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "gas": 2672,
        "inputs": [
            {
                "name": "arg0",
                "type": "int128"
            },
            {
                "name": "arg1",
                "type": "uint256"
            }
        ],
        "name": "points_type_weight",
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "gas": 2400,
        "inputs": [
            {
                "name": "arg0",
                "type": "uint256"
            }
        ],
        "name": "time_type_weight",
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    }
]
