{
  "compiler": {
    "version": "0.5.13+commit.5b0b510c"
  },
  "language": "Solidity",
  "output": {
    "abi": [
      {
        "anonymous": false,
        "inputs": [
          {
            "indexed": true,
            "internalType": "address",
            "name": "implementation",
            "type": "address"
          }
        ],
        "name": "ImplementationSet",
        "type": "event"
      },
      {
        "anonymous": false,
        "inputs": [
          {
            "indexed": true,
            "internalType": "address",
            "name": "owner",
            "type": "address"
          }
        ],
        "name": "OwnerSet",
        "type": "event"
      },
      {
        "payable": true,
        "stateMutability": "payable",
        "type": "fallback"
      },
      {
        "constant": true,
        "inputs": [],
        "name": "_getImplementation",
        "outputs": [
          {
            "internalType": "address",
            "name": "implementation",
            "type": "address"
          }
        ],
        "payable": false,
        "stateMutability": "view",
        "type": "function"
      },
      {
        "constant": true,
        "inputs": [],
        "name": "_getOwner",
        "outputs": [
          {
            "internalType": "address",
            "name": "owner",
            "type": "address"
          }
        ],
        "payable": false,
        "stateMutability": "view",
        "type": "function"
      },
      {
        "constant": false,
        "inputs": [
          {
            "internalType": "address",
            "name": "implementation",
            "type": "address"
          },
          {
            "internalType": "bytes",
            "name": "callbackData",
            "type": "bytes"
          }
        ],
        "name": "_setAndInitializeImplementation",
        "outputs": [],
        "payable": true,
        "stateMutability": "payable",
        "type": "function"
      },
      {
        "constant": false,
        "inputs": [
          {
            "internalType": "address",
            "name": "implementation",
            "type": "address"
          }
        ],
        "name": "_setImplementation",
        "outputs": [],
        "payable": false,
        "stateMutability": "nonpayable",
        "type": "function"
      },
      {
        "constant": false,
        "inputs": [
          {
            "internalType": "address",
            "name": "newOwner",
            "type": "address"
          }
        ],
        "name": "_transferOwnership",
        "outputs": [],
        "payable": false,
        "stateMutability": "nonpayable",
        "type": "function"
      }
    ],
    "devdoc": {
      "methods": {
        "_setAndInitializeImplementation(address,bytes)": {
          "details": "Throws if the initialization callback fails.If the target contract does not need initialization, use setImplementation instead.",
          "params": {
            "callbackData": "The abi-encoded function call to perform in the implementation contract.",
            "implementation": "Address of the new target contract."
          }
        },
        "_setImplementation(address)": {
          "details": "If the target contract needs to be initialized, call setAndInitializeImplementation instead.",
          "params": {
            "implementation": "Address of the new target contract."
          }
        },
        "_transferOwnership(address)": {
          "params": {
            "newOwner": "Address of the new owner account."
          }
        }
      }
    },
    "userdoc": {
      "methods": {
        "_getImplementation()": {
          "notice": "Returns the implementation address."
        },
        "_getOwner()": {
          "notice": "Returns the Proxy owner's address."
        },
        "_setAndInitializeImplementation(address,bytes)": {
          "notice": "Sets the address of the implementation contract and calls into it."
        },
        "_setImplementation(address)": {
          "notice": "Sets the address of the implementation contract."
        },
        "_transferOwnership(address)": {
          "notice": "Transfers ownership of Proxy to a new owner."
        }
      }
    }
  },
  "settings": {
    "compilationTarget": {
      "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/common/proxies/AccountsProxy.sol": "AccountsProxy"
    },
    "evmVersion": "istanbul",
    "libraries": {},
    "optimizer": {
      "enabled": false,
      "runs": 200
    },
    "remappings": []
  },
  "sources": {
    "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/common/Proxy.sol": {
      "keccak256": "0x650f2a079da45a71970749c9039dece5986835225035b29eca4df1c1dab0d6ac",
      "urls": [
        "bzz-raw://cb6c36af368fa26a6fb5f033941536e73ebd1aafad5162f073f318a30f4ee349",
        "dweb:/ipfs/QmaWNhRtpPU4iGDnWjBYRZobUvJYwGQJvtaPZMtbzjjZB3"
      ]
    },
    "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/common/proxies/AccountsProxy.sol": {
      "keccak256": "0x42531c7bfc12cf2e3e33a1b1f7614d82b25e8a2beff194d793446b7639a55d05",
      "urls": [
        "bzz-raw://49c99e47f7ed5ad077ac98fd30bee47674959cbb5ce5ac5d21d12bd121ad9711",
        "dweb:/ipfs/QmNRDQrNYKMqdNgduv4euvrmFxSDqJJ267RzPJY5p6fNte"
      ]
    },
    "openzeppelin-solidity/contracts/utils/Address.sol": {
      "keccak256": "0x1a8e5072509c5ea7365eb1d48030b9be865140c8fb779968da0a459a0e174a11",
      "urls": [
        "bzz-raw://03335b7b07c7c8c8d613cfdd8ec39a0b5ec133ee510bf2fe6cc5a496767bef4b",
        "dweb:/ipfs/Qmebp4nzPja645c9yXSdJkGq96oU3am3LUnG2K3R7XxyKf"
      ]
    }
  },
  "version": 1
}