{
  "_format": "hh3-artifact-1",
  "contractName": "MockBlacklistUSDC",
  "sourceName": "contracts/test/MockBlacklistUSDC.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Blacklisted",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "allowance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "needed",
          "type": "uint256"
        }
      ],
      "name": "ERC20InsufficientAllowance",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "needed",
          "type": "uint256"
        }
      ],
      "name": "ERC20InsufficientBalance",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "approver",
          "type": "address"
        }
      ],
      "name": "ERC20InvalidApprover",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "receiver",
          "type": "address"
        }
      ],
      "name": "ERC20InvalidReceiver",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "ERC20InvalidSender",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "ERC20InvalidSpender",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "blacklist",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "isBlacklisted",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "mint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "unblacklist",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506040518060400160405280600e81526020016d426c61636b6c697374205553444360901b81525060405180604001604052806006815260200165626c5553444360d01b8152508160039081610066919061011a565b506004610073828261011a565b5050506101d8565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806100a557607f821691505b6020821081036100c557634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561011557806000526020600020601f840160051c810160208510156100f25750805b601f840160051c820191505b8181101561011257600081556001016100fe565b50505b505050565b81516001600160401b038111156101335761013361007b565b610147816101418454610091565b846100cb565b6020601f82116001811461017b57600083156101635750848201515b600019600385901b1c1916600184901b178455610112565b600084815260208120601f198516915b828110156101ab578785015182556020948501946001909201910161018b565b50848210156101c95786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b61089e806101e76000396000f3fe608060405234801561001057600080fd5b50600436106100af5760003560e01c806306fdde03146100b4578063095ea7b3146100d257806318160ddd146100f557806323b872dd14610107578063313ce5671461011a57806340c10f191461012957806370a082311461013e57806375e3661e1461016757806395d89b4114610196578063a9059cbb1461019e578063dd62ed3e146101b1578063f9f92be4146101c4578063fe575a87146101f6575b600080fd5b6100bc610219565b6040516100c991906106db565b60405180910390f35b6100e56100e0366004610745565b6102ab565b60405190151581526020016100c9565b6002545b6040519081526020016100c9565b6100e561011536600461076f565b6102c5565b604051600681526020016100c9565b61013c610137366004610745565b6102e9565b005b6100f961014c3660046107ac565b6001600160a01b031660009081526020819052604090205490565b61013c6101753660046107ac565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6100bc6102f7565b6100e56101ac366004610745565b610306565b6100f96101bf3660046107ce565b610314565b61013c6101d23660046107ac565b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b6100e56102043660046107ac565b60056020526000908152604090205460ff1681565b60606003805461022890610801565b80601f016020809104026020016040519081016040528092919081815260200182805461025490610801565b80156102a15780601f10610276576101008083540402835291602001916102a1565b820191906000526020600020905b81548152906001019060200180831161028457829003601f168201915b5050505050905090565b6000336102b981858561033f565b60019150505b92915050565b6000336102d3858285610351565b6102de8585856103ae565b506001949350505050565b6102f3828261040d565b5050565b60606004805461022890610801565b6000336102b98185856103ae565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61034c8383836001610443565b505050565b600061035d8484610314565b90506000198110156103a8578181101561039957828183604051637dc7a0d960e11b81526004016103909392919061083b565b60405180910390fd5b6103a884848484036000610443565b50505050565b6001600160a01b0383166103d8576000604051634b637e8f60e11b8152600401610390919061085c565b6001600160a01b03821661040257600060405163ec442f0560e01b8152600401610390919061085c565b61034c838383610518565b6001600160a01b03821661043757600060405163ec442f0560e01b8152600401610390919061085c565b6102f360008383610518565b6001600160a01b03841661046d57600060405163e602df0560e01b8152600401610390919061085c565b6001600160a01b038316610497576000604051634a1406b160e11b8152600401610390919061085c565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156103a857826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161050a91815260200190565b60405180910390a350505050565b6001600160a01b0383161580159061054857506001600160a01b03831660009081526005602052604090205460ff165b1561056b57826040516001620b633d60e31b03198152600401610390919061085c565b6001600160a01b0382161580159061059b57506001600160a01b03821660009081526005602052604090205460ff165b156105be57816040516001620b633d60e31b03198152600401610390919061085c565b61034c8383836001600160a01b0383166105ef5780600260008282546105e49190610870565b9091555061064e9050565b6001600160a01b0383166000908152602081905260409020548181101561062f5783818360405163391434e360e21b81526004016103909392919061083b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661066a57600280548290039055610689565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106ce91815260200190565b60405180910390a3505050565b602081526000825180602084015260005b8181101561070957602081860181015160408684010152016106ec565b506000604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461074057600080fd5b919050565b6000806040838503121561075857600080fd5b61076183610729565b946020939093013593505050565b60008060006060848603121561078457600080fd5b61078d84610729565b925061079b60208501610729565b929592945050506040919091013590565b6000602082840312156107be57600080fd5b6107c782610729565b9392505050565b600080604083850312156107e157600080fd5b6107ea83610729565b91506107f860208401610729565b90509250929050565b600181811c9082168061081557607f821691505b60208210810361083557634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b0391909116815260200190565b808201808211156102bf57634e487b7160e01b600052601160045260246000fdfea164736f6c634300081c000a",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100af5760003560e01c806306fdde03146100b4578063095ea7b3146100d257806318160ddd146100f557806323b872dd14610107578063313ce5671461011a57806340c10f191461012957806370a082311461013e57806375e3661e1461016757806395d89b4114610196578063a9059cbb1461019e578063dd62ed3e146101b1578063f9f92be4146101c4578063fe575a87146101f6575b600080fd5b6100bc610219565b6040516100c991906106db565b60405180910390f35b6100e56100e0366004610745565b6102ab565b60405190151581526020016100c9565b6002545b6040519081526020016100c9565b6100e561011536600461076f565b6102c5565b604051600681526020016100c9565b61013c610137366004610745565b6102e9565b005b6100f961014c3660046107ac565b6001600160a01b031660009081526020819052604090205490565b61013c6101753660046107ac565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6100bc6102f7565b6100e56101ac366004610745565b610306565b6100f96101bf3660046107ce565b610314565b61013c6101d23660046107ac565b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b6100e56102043660046107ac565b60056020526000908152604090205460ff1681565b60606003805461022890610801565b80601f016020809104026020016040519081016040528092919081815260200182805461025490610801565b80156102a15780601f10610276576101008083540402835291602001916102a1565b820191906000526020600020905b81548152906001019060200180831161028457829003601f168201915b5050505050905090565b6000336102b981858561033f565b60019150505b92915050565b6000336102d3858285610351565b6102de8585856103ae565b506001949350505050565b6102f3828261040d565b5050565b60606004805461022890610801565b6000336102b98185856103ae565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61034c8383836001610443565b505050565b600061035d8484610314565b90506000198110156103a8578181101561039957828183604051637dc7a0d960e11b81526004016103909392919061083b565b60405180910390fd5b6103a884848484036000610443565b50505050565b6001600160a01b0383166103d8576000604051634b637e8f60e11b8152600401610390919061085c565b6001600160a01b03821661040257600060405163ec442f0560e01b8152600401610390919061085c565b61034c838383610518565b6001600160a01b03821661043757600060405163ec442f0560e01b8152600401610390919061085c565b6102f360008383610518565b6001600160a01b03841661046d57600060405163e602df0560e01b8152600401610390919061085c565b6001600160a01b038316610497576000604051634a1406b160e11b8152600401610390919061085c565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156103a857826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161050a91815260200190565b60405180910390a350505050565b6001600160a01b0383161580159061054857506001600160a01b03831660009081526005602052604090205460ff165b1561056b57826040516001620b633d60e31b03198152600401610390919061085c565b6001600160a01b0382161580159061059b57506001600160a01b03821660009081526005602052604090205460ff165b156105be57816040516001620b633d60e31b03198152600401610390919061085c565b61034c8383836001600160a01b0383166105ef5780600260008282546105e49190610870565b9091555061064e9050565b6001600160a01b0383166000908152602081905260409020548181101561062f5783818360405163391434e360e21b81526004016103909392919061083b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661066a57600280548290039055610689565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106ce91815260200190565b60405180910390a3505050565b602081526000825180602084015260005b8181101561070957602081860181015160408684010152016106ec565b506000604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461074057600080fd5b919050565b6000806040838503121561075857600080fd5b61076183610729565b946020939093013593505050565b60008060006060848603121561078457600080fd5b61078d84610729565b925061079b60208501610729565b929592945050506040919091013590565b6000602082840312156107be57600080fd5b6107c782610729565b9392505050565b600080604083850312156107e157600080fd5b6107ea83610729565b91506107f860208401610729565b90509250929050565b600181811c9082168061081557607f821691505b60208210810361083557634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b0391909116815260200190565b808201808211156102bf57634e487b7160e01b600052601160045260246000fdfea164736f6c634300081c000a",
  "linkReferences": {},
  "deployedLinkReferences": {},
  "immutableReferences": {},
  "inputSourceName": "project/contracts/test/MockBlacklistUSDC.sol",
  "buildInfoId": "solc-0_8_28-58b894a0ac77a2d784be77b69288a062b8f6f518"
}