{
  "$schema": "../../../../contract.schema.json",
  "released": false,
  "contractName": "BlastRouterProxyFactory",
  "deploymentName": "RouterProxyFactory",
  "version": "2.1.0-0",
  "networkAddresses": {
    "168587773": {
      "primaryAddress": "0x79C3F23F210e30F6AA9072F0ddFd2D180C8B7131",
      "allAddresses": [
        {
          "address": "0x79C3F23F210e30F6AA9072F0ddFd2D180C8B7131",
          "dependencies": [
            {
              "name": "Mangrove",
              "address": "0x579ba1708e8E15c9D41143a3da4B8382831E0897"
            }
          ]
        }
      ]
    }
  },
  "abi": [
    {
      "type": "constructor",
      "inputs": [
        { "name": "_admin", "type": "address", "internalType": "address" }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "admin",
      "inputs": [],
      "outputs": [
        { "name": "current", "type": "address", "internalType": "address" }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "blastPointsAdmin",
      "inputs": [],
      "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "computeProxyAddress",
      "inputs": [
        { "name": "owner", "type": "address", "internalType": "address" },
        {
          "name": "routerImplementation",
          "type": "address",
          "internalType": "contract AbstractRouter"
        }
      ],
      "outputs": [
        { "name": "", "type": "address", "internalType": "address payable" }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "deployProxy",
      "inputs": [
        { "name": "owner", "type": "address", "internalType": "address" },
        {
          "name": "routerImplementation",
          "type": "address",
          "internalType": "contract AbstractRouter"
        }
      ],
      "outputs": [
        {
          "name": "proxy",
          "type": "address",
          "internalType": "contract RouterProxy"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "instantiate",
      "inputs": [
        { "name": "owner", "type": "address", "internalType": "address" },
        {
          "name": "routerImplementation",
          "type": "address",
          "internalType": "contract AbstractRouter"
        }
      ],
      "outputs": [
        {
          "name": "proxy",
          "type": "address",
          "internalType": "contract RouterProxy"
        },
        { "name": "created", "type": "bool", "internalType": "bool" }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setAdmin",
      "inputs": [
        { "name": "admin_", "type": "address", "internalType": "address" }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "event",
      "name": "ProxyDeployed",
      "inputs": [
        {
          "name": "proxy",
          "type": "address",
          "indexed": false,
          "internalType": "contract RouterProxy"
        },
        {
          "name": "owner",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "implementation",
          "type": "address",
          "indexed": true,
          "internalType": "contract AbstractRouter"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "SetAdmin",
      "inputs": [
        {
          "name": "admin",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        }
      ],
      "anonymous": false
    }
  ]
}
