{
  "released": true,
  "contractName": "Safe4337Module",
  "version": "0.3.0",
  "networkAddresses": {
    "1": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "10": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "50": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "51": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "56": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "97": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "100": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "130": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "137": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "143": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "204": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "480": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "1284": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "1285": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "1287": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "1328": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "1329": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "3338": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "3637": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "8150": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "8453": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "9745": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "10143": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "16661": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "42161": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "42220": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "80002": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "80069": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "81224": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "84532": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "421614": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "534352": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "747474": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
    "11155111": "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226"
  },
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "entryPoint",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "ExecutionFailed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidCaller",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidEntryPoint",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "UnsupportedEntryPoint",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "selector",
          "type": "bytes4"
        }
      ],
      "name": "UnsupportedExecutionFunction",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "SUPPORTED_ENTRYPOINT",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "domainSeparator",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "domainSeparatorHash",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract Safe",
          "name": "safe",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "message",
          "type": "bytes"
        }
      ],
      "name": "encodeMessageDataForSafe",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "internalType": "uint8",
          "name": "operation",
          "type": "uint8"
        }
      ],
      "name": "executeUserOp",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "internalType": "uint8",
          "name": "operation",
          "type": "uint8"
        }
      ],
      "name": "executeUserOpWithErrorString",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "message",
          "type": "bytes"
        }
      ],
      "name": "getMessageHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract Safe",
          "name": "safe",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "message",
          "type": "bytes"
        }
      ],
      "name": "getMessageHashForSafe",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getModules",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "sender",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "initCode",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "callData",
              "type": "bytes"
            },
            {
              "internalType": "bytes32",
              "name": "accountGasLimits",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "preVerificationGas",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "gasFees",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "paymasterAndData",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "signature",
              "type": "bytes"
            }
          ],
          "internalType": "struct PackedUserOperation",
          "name": "userOp",
          "type": "tuple"
        }
      ],
      "name": "getOperationHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "operationHash",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_dataHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "_signature",
          "type": "bytes"
        }
      ],
      "name": "isValidSignature",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "_signature",
          "type": "bytes"
        }
      ],
      "name": "isValidSignature",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "onERC1155BatchReceived",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "onERC1155Received",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "onERC721Received",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "targetContract",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "calldataPayload",
          "type": "bytes"
        }
      ],
      "name": "simulate",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "response",
          "type": "bytes"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "tokensReceived",
      "outputs": [],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "sender",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "initCode",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "callData",
              "type": "bytes"
            },
            {
              "internalType": "bytes32",
              "name": "accountGasLimits",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "preVerificationGas",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "gasFees",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "paymasterAndData",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "signature",
              "type": "bytes"
            }
          ],
          "internalType": "struct PackedUserOperation",
          "name": "userOp",
          "type": "tuple"
        },
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "missingAccountFunds",
          "type": "uint256"
        }
      ],
      "name": "validateUserOp",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "validationData",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ]
}
