[
    {
        "name": "CommitNewAdmin",
        "inputs": [
            {
                "name": "deadline",
                "type": "uint256",
                "indexed": true
            },
            {
                "name": "admin",
                "type": "address",
                "indexed": true
            }
        ],
        "anonymous": false,
        "type": "event"
    },
    {
        "name": "NewAdmin",
        "inputs": [
            {
                "name": "admin",
                "type": "address",
                "indexed": true
            }
        ],
        "anonymous": false,
        "type": "event"
    },
    {
        "stateMutability": "nonpayable",
        "type": "constructor",
        "inputs": [
            {
                "name": "_address_provider",
                "type": "address"
            }
        ],
        "outputs": []
    },
    {
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "add_registry_handler",
        "inputs": [
            {
                "name": "_registry_handler",
                "type": "address"
            }
        ],
        "outputs": []
    },
    {
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "update_registry_handler",
        "inputs": [
            {
                "name": "_index",
                "type": "uint256"
            },
            {
                "name": "_registry_handler",
                "type": "address"
            }
        ],
        "outputs": []
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_registry_handlers_from_pool",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "address[10]"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_base_registry",
        "inputs": [
            {
                "name": "registry_handler",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "address"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "find_pool_for_coins",
        "inputs": [
            {
                "name": "_from",
                "type": "address"
            },
            {
                "name": "_to",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "address"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "find_pool_for_coins",
        "inputs": [
            {
                "name": "_from",
                "type": "address"
            },
            {
                "name": "_to",
                "type": "address"
            },
            {
                "name": "i",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "address"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "find_pools_for_coins",
        "inputs": [
            {
                "name": "_from",
                "type": "address"
            },
            {
                "name": "_to",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "address[]"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_admin_balances",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "uint256[8]"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_admin_balances",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "_handler_id",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "uint256[8]"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_balances",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "uint256[8]"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_balances",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "_handler_id",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "uint256[8]"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_base_pool",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "address"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_base_pool",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "_handler_id",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "address"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_coin_indices",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "_from",
                "type": "address"
            },
            {
                "name": "_to",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "int128"
            },
            {
                "name": "",
                "type": "int128"
            },
            {
                "name": "",
                "type": "bool"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_coin_indices",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "_from",
                "type": "address"
            },
            {
                "name": "_to",
                "type": "address"
            },
            {
                "name": "_handler_id",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "int128"
            },
            {
                "name": "",
                "type": "int128"
            },
            {
                "name": "",
                "type": "bool"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_coins",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "address[8]"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_coins",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "_handler_id",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "address[8]"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_decimals",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "uint256[8]"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_decimals",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "_handler_id",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "uint256[8]"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_fees",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "uint256[10]"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_fees",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "_handler_id",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "uint256[10]"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_gauge",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "address"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_gauge",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "gauge_idx",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "address"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_gauge",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "gauge_idx",
                "type": "uint256"
            },
            {
                "name": "_handler_id",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "address"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_gauge_type",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "int128"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_gauge_type",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "gauge_idx",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "int128"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_gauge_type",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "gauge_idx",
                "type": "uint256"
            },
            {
                "name": "_handler_id",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "int128"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_lp_token",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "address"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_lp_token",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "_handler_id",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "address"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_n_coins",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_n_coins",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "_handler_id",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_n_underlying_coins",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_n_underlying_coins",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "_handler_id",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_pool_asset_type",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_pool_asset_type",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "_handler_id",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_pool_from_lp_token",
        "inputs": [
            {
                "name": "_token",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "address"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_pool_from_lp_token",
        "inputs": [
            {
                "name": "_token",
                "type": "address"
            },
            {
                "name": "_handler_id",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "address"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_pool_params",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "uint256[20]"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_pool_params",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "_handler_id",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "uint256[20]"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_pool_name",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "string"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_pool_name",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "_handler_id",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "string"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_underlying_balances",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "uint256[8]"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_underlying_balances",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "_handler_id",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "uint256[8]"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_underlying_coins",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "address[8]"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_underlying_coins",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "_handler_id",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "address[8]"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_underlying_decimals",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "uint256[8]"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_underlying_decimals",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "_handler_id",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "uint256[8]"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_virtual_price_from_lp_token",
        "inputs": [
            {
                "name": "_token",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_virtual_price_from_lp_token",
        "inputs": [
            {
                "name": "_token",
                "type": "address"
            },
            {
                "name": "_handler_id",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "is_meta",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "bool"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "is_meta",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "_handler_id",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "bool"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "is_registered",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "bool"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "is_registered",
        "inputs": [
            {
                "name": "_pool",
                "type": "address"
            },
            {
                "name": "_handler_id",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "bool"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "pool_count",
        "inputs": [],
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "pool_list",
        "inputs": [
            {
                "name": "_index",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "address"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "address_provider",
        "inputs": [],
        "outputs": [
            {
                "name": "",
                "type": "address"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "owner",
        "inputs": [],
        "outputs": [
            {
                "name": "",
                "type": "address"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "get_registry",
        "inputs": [
            {
                "name": "arg0",
                "type": "uint256"
            }
        ],
        "outputs": [
            {
                "name": "",
                "type": "address"
            }
        ]
    },
    {
        "stateMutability": "view",
        "type": "function",
        "name": "registry_length",
        "inputs": [],
        "outputs": [
            {
                "name": "",
                "type": "uint256"
            }
        ]
    }
]