{
  "_format": "hh-sol-artifact-1",
  "contractName": "EnumerableMapAddressToUintMock",
  "sourceName": "contracts/test/utils/EnumerableMapAddressToUintMock.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": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "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": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "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": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "set",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "key",
          "type": "address"
        }
      ],
      "name": "tryGet",
      "outputs": [
        {
          "internalType": "bool",
          "name": "exists",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "values",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506109f9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80635dbe47e811610076578063971217b71161005b578063971217b71461014d578063c2bc2efc14610162578063e0886f901461017557600080fd5b80635dbe47e814610100578063864083af1461012357600080fd5b80631f7b6d32146100a857806329092d0e146100c3578063307540f6146100d85780633825d828146100ed575b600080fd5b6100b06101b4565b6040519081526020015b60405180910390f35b6100d66100d13660046107cc565b6101c5565b005b6100e0610212565b6040516100ba91906107e7565b6100d66100fb366004610841565b61021e565b61011361010e3660046107cc565b61026d565b60405190151581526020016100ba565b6101366101313660046107cc565b61027f565b6040805192151583526020830191909152016100ba565b610155610295565b6040516100ba919061086b565b6100b06101703660046107cc565b6102a1565b6101886101833660046108a3565b6102ad565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016100ba565b60006101c060006102ba565b905090565b60006101d181836102c5565b90507fed9840e0775590557ad736875d96c95cf1458b766335f74339951a32c82a9e3381604051610206911515815260200190565b60405180910390a15050565b60606101c06000610300565b600061022b81848461030b565b90507fed9840e0775590557ad736875d96c95cf1458b766335f74339951a32c82a9e3381604051610260911515815260200190565b60405180910390a1505050565b60006102798183610347565b92915050565b60008061028c8184610353565b91509150915091565b60606101c060006103a8565b60006102798183610473565b60008061028c8184610503565b600061027982610545565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260028301602052604081208190556102f9838361054f565b9392505050565b606061027982610571565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600284016020526040812082905561033f848461057e565b949350505050565b60006102f983836105a0565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600283016020526040812054819080820361039a5761038e8585610347565b600092509250506103a1565b6001925090505b9250929050565b60606103b3826102ba565b67ffffffffffffffff8111156103cb576103cb6108bc565b6040519080825280602002602001820160405280156103f4578160200160208202803683370190505b50905060005b815181101561046d57600061040f84836105cf565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260028601602052604090205484519192509084908490811061044f5761044f6108eb565b6020908102919091010152508061046581610949565b9150506103fa565b50919050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600283016020526040812054801580156104b057506104ae8484610347565b155b156102f9576040517fb4d152b000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260240160405180910390fd5b6000808061051185856105cf565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260029690960160205260409095205494959350505050565b6000610279825490565b60006102f98373ffffffffffffffffffffffffffffffffffffffff84166105db565b606060006102f9836106ce565b60006102f98373ffffffffffffffffffffffffffffffffffffffff841661072a565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260018301602052604081205415156102f9565b60006102f98383610779565b600081815260018301602052604081205480156106c45760006105ff600183610981565b855490915060009061061390600190610981565b9050818114610678576000866000018281548110610633576106336108eb565b9060005260206000200154905080876000018481548110610656576106566108eb565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061068957610689610994565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610279565b6000915050610279565b60608160000180548060200260200160405190810160405280929190818152602001828054801561071e57602002820191906000526020600020905b81548152602001906001019080831161070a575b50505050509050919050565b600081815260018301602052604081205461077157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610279565b506000610279565b6000826000018281548110610790576107906108eb565b9060005260206000200154905092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146107c757600080fd5b919050565b6000602082840312156107de57600080fd5b6102f9826107a3565b6020808252825182820181905260009190848201906040850190845b8181101561083557835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101610803565b50909695505050505050565b6000806040838503121561085457600080fd5b61085d836107a3565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561083557835183529284019291840191600101610887565b6000602082840312156108b557600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361097a5761097a61091a565b5060010190565b818103818111156102795761027961091a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220c00558a8489bd6935452da45203e8b46fd97424b44b14b6044ddbaafc065d80864736f6c63430008110033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a35760003560e01c80635dbe47e811610076578063971217b71161005b578063971217b71461014d578063c2bc2efc14610162578063e0886f901461017557600080fd5b80635dbe47e814610100578063864083af1461012357600080fd5b80631f7b6d32146100a857806329092d0e146100c3578063307540f6146100d85780633825d828146100ed575b600080fd5b6100b06101b4565b6040519081526020015b60405180910390f35b6100d66100d13660046107cc565b6101c5565b005b6100e0610212565b6040516100ba91906107e7565b6100d66100fb366004610841565b61021e565b61011361010e3660046107cc565b61026d565b60405190151581526020016100ba565b6101366101313660046107cc565b61027f565b6040805192151583526020830191909152016100ba565b610155610295565b6040516100ba919061086b565b6100b06101703660046107cc565b6102a1565b6101886101833660046108a3565b6102ad565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016100ba565b60006101c060006102ba565b905090565b60006101d181836102c5565b90507fed9840e0775590557ad736875d96c95cf1458b766335f74339951a32c82a9e3381604051610206911515815260200190565b60405180910390a15050565b60606101c06000610300565b600061022b81848461030b565b90507fed9840e0775590557ad736875d96c95cf1458b766335f74339951a32c82a9e3381604051610260911515815260200190565b60405180910390a1505050565b60006102798183610347565b92915050565b60008061028c8184610353565b91509150915091565b60606101c060006103a8565b60006102798183610473565b60008061028c8184610503565b600061027982610545565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260028301602052604081208190556102f9838361054f565b9392505050565b606061027982610571565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600284016020526040812082905561033f848461057e565b949350505050565b60006102f983836105a0565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600283016020526040812054819080820361039a5761038e8585610347565b600092509250506103a1565b6001925090505b9250929050565b60606103b3826102ba565b67ffffffffffffffff8111156103cb576103cb6108bc565b6040519080825280602002602001820160405280156103f4578160200160208202803683370190505b50905060005b815181101561046d57600061040f84836105cf565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260028601602052604090205484519192509084908490811061044f5761044f6108eb565b6020908102919091010152508061046581610949565b9150506103fa565b50919050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600283016020526040812054801580156104b057506104ae8484610347565b155b156102f9576040517fb4d152b000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260240160405180910390fd5b6000808061051185856105cf565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260029690960160205260409095205494959350505050565b6000610279825490565b60006102f98373ffffffffffffffffffffffffffffffffffffffff84166105db565b606060006102f9836106ce565b60006102f98373ffffffffffffffffffffffffffffffffffffffff841661072a565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260018301602052604081205415156102f9565b60006102f98383610779565b600081815260018301602052604081205480156106c45760006105ff600183610981565b855490915060009061061390600190610981565b9050818114610678576000866000018281548110610633576106336108eb565b9060005260206000200154905080876000018481548110610656576106566108eb565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061068957610689610994565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610279565b6000915050610279565b60608160000180548060200260200160405190810160405280929190818152602001828054801561071e57602002820191906000526020600020905b81548152602001906001019080831161070a575b50505050509050919050565b600081815260018301602052604081205461077157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610279565b506000610279565b6000826000018281548110610790576107906108eb565b9060005260206000200154905092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146107c757600080fd5b919050565b6000602082840312156107de57600080fd5b6102f9826107a3565b6020808252825182820181905260009190848201906040850190845b8181101561083557835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101610803565b50909695505050505050565b6000806040838503121561085457600080fd5b61085d836107a3565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561083557835183529284019291840191600101610887565b6000602082840312156108b557600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361097a5761097a61091a565b5060010190565b818103818111156102795761027961091a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220c00558a8489bd6935452da45203e8b46fd97424b44b14b6044ddbaafc065d80864736f6c63430008110033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
