{
  "_format": "hh-sol-artifact-1",
  "contractName": "EnumerableMapAddressToAddressMock",
  "sourceName": "contracts/test/utils/EnumerableMapAddressToAddressMock.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "key",
          "type": "address"
        }
      ],
      "name": "EnumerableMapNonExistentKey",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bool",
          "name": "result",
          "type": "bool"
        }
      ],
      "name": "OperationResult",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        }
      ],
      "name": "at",
      "outputs": [
        {
          "internalType": "address",
          "name": "key",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "value",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "key",
          "type": "address"
        }
      ],
      "name": "contains",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "key",
          "type": "address"
        }
      ],
      "name": "get",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "keys",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "length",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "key",
          "type": "address"
        }
      ],
      "name": "remove",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "key",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "value",
          "type": "address"
        }
      ],
      "name": "set",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "key",
          "type": "address"
        }
      ],
      "name": "tryGet",
      "outputs": [
        {
          "internalType": "bool",
          "name": "exists",
          "type": "bool"
        },
        {
          "internalType": "address",
          "name": "value",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "values",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50610a6c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c8063864083af11610076578063971217b71161005b578063971217b714610162578063c2bc2efc1461016a578063e0886f90146101a257600080fd5b8063864083af1461011057806389675cac1461014f57600080fd5b80631f7b6d32146100a857806329092d0e146100c3578063307540f6146100d85780635dbe47e8146100ed575b600080fd5b6100b06101e2565b6040519081526020015b60405180910390f35b6100d66100d136600461086e565b6101f3565b005b6100e0610240565b6040516100ba9190610889565b6101006100fb36600461086e565b61024c565b60405190151581526020016100ba565b61012361011e36600461086e565b61025e565b60408051921515835273ffffffffffffffffffffffffffffffffffffffff9091166020830152016100ba565b6100d661015d3660046108e3565b610274565b6100e06102c3565b61017d61017836600461086e565b6102cf565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ba565b6101b56101b0366004610916565b6102db565b6040805173ffffffffffffffffffffffffffffffffffffffff9384168152929091166020830152016100ba565b60006101ee60006102e8565b905090565b60006101ff81836102f3565b90507fed9840e0775590557ad736875d96c95cf1458b766335f74339951a32c82a9e3381604051610234911515815260200190565b60405180910390a15050565b60606101ee6000610351565b6000610258818361035c565b92915050565b60008061026b8184610368565b91509150915091565b60006102818184846103bf565b90507fed9840e0775590557ad736875d96c95cf1458b766335f74339951a32c82a9e33816040516102b6911515815260200190565b60405180910390a1505050565b60606101ee6000610427565b6000610258818361050e565b60008061026b81846105a2565b6000610258826105e7565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600283016020526040812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561034a83836105f1565b9392505050565b606061025882610613565b600061034a8383610620565b73ffffffffffffffffffffffffffffffffffffffff80821660009081526002840160205260408120549091829116806103b1576103a5858561035c565b600092509250506103b8565b6001925090505b9250929050565b73ffffffffffffffffffffffffffffffffffffffff8281166000908152600285016020526040812080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169284169290921790915561041f848461064f565b949350505050565b6060610432826102e8565b67ffffffffffffffff81111561044a5761044a61092f565b604051908082528060200260200182016040528015610473578160200160208202803683370190505b50905060005b815181101561050857600061048e8483610671565b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600287016020526040902054855192935016908490849081106104d0576104d061095e565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101525080610500816109bc565b915050610479565b50919050565b73ffffffffffffffffffffffffffffffffffffffff80821660009081526002840160205260408120549091168015801561054f575061054d848461035c565b155b1561034a576040517fb4d152b000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260240160405180910390fd5b600080806105b08585610671565b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600288016020526040902054919450169150509250929050565b6000610258825490565b600061034a8373ffffffffffffffffffffffffffffffffffffffff841661067d565b6060600061034a83610770565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600183016020526040812054151561034a565b600061034a8373ffffffffffffffffffffffffffffffffffffffff84166107cc565b600061034a838361081b565b600081815260018301602052604081205480156107665760006106a16001836109f4565b85549091506000906106b5906001906109f4565b905081811461071a5760008660000182815481106106d5576106d561095e565b90600052602060002001549050808760000184815481106106f8576106f861095e565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061072b5761072b610a07565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610258565b6000915050610258565b6060816000018054806020026020016040519081016040528092919081815260200182805480156107c057602002820191906000526020600020905b8154815260200190600101908083116107ac575b50505050509050919050565b600081815260018301602052604081205461081357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610258565b506000610258565b60008260000182815481106108325761083261095e565b9060005260206000200154905092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461086957600080fd5b919050565b60006020828403121561088057600080fd5b61034a82610845565b6020808252825182820181905260009190848201906040850190845b818110156108d757835173ffffffffffffffffffffffffffffffffffffffff16835292840192918401916001016108a5565b50909695505050505050565b600080604083850312156108f657600080fd5b6108ff83610845565b915061090d60208401610845565b90509250929050565b60006020828403121561092857600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036109ed576109ed61098d565b5060010190565b818103818111156102585761025861098d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212209778b5b9903ff18780435fa433522e7cf27f68e401e35eb49cb54c7f09bc979064736f6c63430008110033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a35760003560e01c8063864083af11610076578063971217b71161005b578063971217b714610162578063c2bc2efc1461016a578063e0886f90146101a257600080fd5b8063864083af1461011057806389675cac1461014f57600080fd5b80631f7b6d32146100a857806329092d0e146100c3578063307540f6146100d85780635dbe47e8146100ed575b600080fd5b6100b06101e2565b6040519081526020015b60405180910390f35b6100d66100d136600461086e565b6101f3565b005b6100e0610240565b6040516100ba9190610889565b6101006100fb36600461086e565b61024c565b60405190151581526020016100ba565b61012361011e36600461086e565b61025e565b60408051921515835273ffffffffffffffffffffffffffffffffffffffff9091166020830152016100ba565b6100d661015d3660046108e3565b610274565b6100e06102c3565b61017d61017836600461086e565b6102cf565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ba565b6101b56101b0366004610916565b6102db565b6040805173ffffffffffffffffffffffffffffffffffffffff9384168152929091166020830152016100ba565b60006101ee60006102e8565b905090565b60006101ff81836102f3565b90507fed9840e0775590557ad736875d96c95cf1458b766335f74339951a32c82a9e3381604051610234911515815260200190565b60405180910390a15050565b60606101ee6000610351565b6000610258818361035c565b92915050565b60008061026b8184610368565b91509150915091565b60006102818184846103bf565b90507fed9840e0775590557ad736875d96c95cf1458b766335f74339951a32c82a9e33816040516102b6911515815260200190565b60405180910390a1505050565b60606101ee6000610427565b6000610258818361050e565b60008061026b81846105a2565b6000610258826105e7565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600283016020526040812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561034a83836105f1565b9392505050565b606061025882610613565b600061034a8383610620565b73ffffffffffffffffffffffffffffffffffffffff80821660009081526002840160205260408120549091829116806103b1576103a5858561035c565b600092509250506103b8565b6001925090505b9250929050565b73ffffffffffffffffffffffffffffffffffffffff8281166000908152600285016020526040812080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169284169290921790915561041f848461064f565b949350505050565b6060610432826102e8565b67ffffffffffffffff81111561044a5761044a61092f565b604051908082528060200260200182016040528015610473578160200160208202803683370190505b50905060005b815181101561050857600061048e8483610671565b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600287016020526040902054855192935016908490849081106104d0576104d061095e565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101525080610500816109bc565b915050610479565b50919050565b73ffffffffffffffffffffffffffffffffffffffff80821660009081526002840160205260408120549091168015801561054f575061054d848461035c565b155b1561034a576040517fb4d152b000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260240160405180910390fd5b600080806105b08585610671565b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600288016020526040902054919450169150509250929050565b6000610258825490565b600061034a8373ffffffffffffffffffffffffffffffffffffffff841661067d565b6060600061034a83610770565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600183016020526040812054151561034a565b600061034a8373ffffffffffffffffffffffffffffffffffffffff84166107cc565b600061034a838361081b565b600081815260018301602052604081205480156107665760006106a16001836109f4565b85549091506000906106b5906001906109f4565b905081811461071a5760008660000182815481106106d5576106d561095e565b90600052602060002001549050808760000184815481106106f8576106f861095e565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061072b5761072b610a07565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610258565b6000915050610258565b6060816000018054806020026020016040519081016040528092919081815260200182805480156107c057602002820191906000526020600020905b8154815260200190600101908083116107ac575b50505050509050919050565b600081815260018301602052604081205461081357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610258565b506000610258565b60008260000182815481106108325761083261095e565b9060005260206000200154905092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461086957600080fd5b919050565b60006020828403121561088057600080fd5b61034a82610845565b6020808252825182820181905260009190848201906040850190845b818110156108d757835173ffffffffffffffffffffffffffffffffffffffff16835292840192918401916001016108a5565b50909695505050505050565b600080604083850312156108f657600080fd5b6108ff83610845565b915061090d60208401610845565b90509250929050565b60006020828403121561092857600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036109ed576109ed61098d565b5060010190565b818103818111156102585761025861098d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212209778b5b9903ff18780435fa433522e7cf27f68e401e35eb49cb54c7f09bc979064736f6c63430008110033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
