{
  "$schema": "../../../../contract.schema.json",
  "released": true,
  "contractName": "RouterProxyFactory",
  "version": "2.1.0",
  "networkAddresses": {
    "42161": {
      "primaryAddress": "0x396614E1050Ffb01E16B4C985b02a7EbB377e0F1",
      "allAddresses": [
        {
          "address": "0x396614E1050Ffb01E16B4C985b02a7EbB377e0F1",
          "dependencies": [
            {
              "name": "Mangrove",
              "address": "0x109d9CDFA4aC534354873EF634EF63C235F93f61"
            }
          ]
        }
      ]
    },
    "81457": {
      "primaryAddress": "0x79C3F23F210e30F6AA9072F0ddFd2D180C8B7131",
      "allAddresses": [
        {
          "address": "0x79C3F23F210e30F6AA9072F0ddFd2D180C8B7131",
          "dependencies": [
            {
              "name": "Mangrove",
              "address": "0xb1a49C54192Ea59B233200eA38aB56650Dfb448C"
            }
          ]
        }
      ]
    }
  },
  "abi": [
    {
      "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": "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
    }
  ]
}
