{
  "address": "0x0C857BF64430Cda68408bF8ed4183EA47B969738",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_web3FunctionHash",
          "type": "string"
        },
        {
          "internalType": "bytes",
          "name": "_web3FunctionArgsHex",
          "type": "bytes"
        }
      ],
      "name": "encodeModuleArg",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "execAddresses",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "fee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "feeToken",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "nonce1Balance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "onCreateTask",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "taskId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "taskCreator",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "execAddress",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "execData",
          "type": "bytes"
        }
      ],
      "name": "postExecCall",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_taskCreator",
          "type": "address"
        }
      ],
      "name": "preCancelTask",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_taskCreator",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_execAddress",
          "type": "address"
        }
      ],
      "name": "preCreateTask",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_execAddress",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "_execData",
          "type": "bytes"
        }
      ],
      "name": "preExecCall",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "taskCreator",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "enum LibDataTypes.Module",
          "name": "",
          "type": "uint8"
        }
      ],
      "name": "taskModuleAddresses",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "timedTask",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "nextExec",
          "type": "uint128"
        },
        {
          "internalType": "uint128",
          "name": "interval",
          "type": "uint128"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "transactionHash": "0x337479d10a5198437b003bad57d30de283c2b6e164b69e90984ff1b2eec22bc3",
  "receipt": {
    "to": "0x0000000000000000000000000000000000008006",
    "from": "0xF1108379d71ff2A785899F4C36010f841F1Fea04",
    "contractAddress": "0x0C857BF64430Cda68408bF8ed4183EA47B969738",
    "transactionIndex": 11,
    "gasUsed": "6826537",
    "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
    "blockHash": "0xbfc178a6f5d812238b2738beacde3d4853a0098483d26f694795c760495ad2e4",
    "transactionHash": "0x337479d10a5198437b003bad57d30de283c2b6e164b69e90984ff1b2eec22bc3",
    "logs": [
      {
        "transactionIndex": 11,
        "blockNumber": 5925529,
        "transactionHash": "0x337479d10a5198437b003bad57d30de283c2b6e164b69e90984ff1b2eec22bc3",
        "address": "0x000000000000000000000000000000000000800A",
        "topics": [
          "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
          "0x000000000000000000000000f1108379d71ff2a785899f4c36010f841f1fea04",
          "0x0000000000000000000000000000000000000000000000000000000000008001"
        ],
        "data": "0x00000000000000000000000000000000000000000000000000095163e3736a80",
        "logIndex": 68,
        "blockHash": "0xbfc178a6f5d812238b2738beacde3d4853a0098483d26f694795c760495ad2e4"
      },
      {
        "transactionIndex": 11,
        "blockNumber": 5925529,
        "transactionHash": "0x337479d10a5198437b003bad57d30de283c2b6e164b69e90984ff1b2eec22bc3",
        "address": "0x0000000000000000000000000000000000008008",
        "topics": [
          "0x3a36e47291f4201faf137fab081d92295bce2d53be2c6ca68ba82c7faa9ce241",
          "0x000000000000000000000000000000000000000000000000000000000000800e",
          "0xd1da7989e2080c01b65792bcc180ff9f2478fd462dd48bf410574bc3ca1d8255"
        ],
        "data": "[encoded data, 11586 characters]",
        "logIndex": 69,
        "blockHash": "0xbfc178a6f5d812238b2738beacde3d4853a0098483d26f694795c760495ad2e4"
      },
      {
        "transactionIndex": 11,
        "blockNumber": 5925529,
        "transactionHash": "0x337479d10a5198437b003bad57d30de283c2b6e164b69e90984ff1b2eec22bc3",
        "address": "0x0000000000000000000000000000000000008004",
        "topics": [
          "0xc94722ff13eacf53547c4741dab5228353a05938ffcdd5d4a2d533ae0e618287",
          "0x010000f9892ae66ee8533e3218f137ff6300dbd7dd17356f02dcf9830b301499",
          "0x0000000000000000000000000000000000000000000000000000000000000000"
        ],
        "data": "0x",
        "logIndex": 70,
        "blockHash": "0xbfc178a6f5d812238b2738beacde3d4853a0098483d26f694795c760495ad2e4"
      },
      {
        "transactionIndex": 11,
        "blockNumber": 5925529,
        "transactionHash": "0x337479d10a5198437b003bad57d30de283c2b6e164b69e90984ff1b2eec22bc3",
        "address": "0x0000000000000000000000000000000000008006",
        "topics": [
          "0x290afdae231a3fc0bbae8b1af63698b0a1d79b21ad17df0342dfb952fe74f8e5",
          "0x000000000000000000000000f1108379d71ff2a785899f4c36010f841f1fea04",
          "0x010000f9892ae66ee8533e3218f137ff6300dbd7dd17356f02dcf9830b301499",
          "0x0000000000000000000000000c857bf64430cda68408bf8ed4183ea47b969738"
        ],
        "data": "0x",
        "logIndex": 71,
        "blockHash": "0xbfc178a6f5d812238b2738beacde3d4853a0098483d26f694795c760495ad2e4"
      },
      {
        "transactionIndex": 11,
        "blockNumber": 5925529,
        "transactionHash": "0x337479d10a5198437b003bad57d30de283c2b6e164b69e90984ff1b2eec22bc3",
        "address": "0x000000000000000000000000000000000000800A",
        "topics": [
          "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
          "0x0000000000000000000000000000000000000000000000000000000000008001",
          "0x000000000000000000000000f1108379d71ff2a785899f4c36010f841f1fea04"
        ],
        "data": "0x000000000000000000000000000000000000000000000000000341372337d400",
        "logIndex": 72,
        "blockHash": "0xbfc178a6f5d812238b2738beacde3d4853a0098483d26f694795c760495ad2e4"
      }
    ],
    "blockNumber": 5925529,
    "cumulativeGasUsed": "0",
    "status": 1,
    "byzantium": true
  },
  "args": [],
  "numDeployments": 1,
  "solcInputHash": "a55a0720c0d0238808136c5effb03d4d",
  "metadata": {
    "optimizer_settings": "M3B3",
    "solc_metadata": "{\"compiler\":{\"version\":\"0.8.14+commit.80d49f37\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_web3FunctionHash\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"_web3FunctionArgsHex\",\"type\":\"bytes\"}],\"name\":\"encodeModuleArg\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"execAddresses\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nonce1Balance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onCreateTask\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"taskId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"taskCreator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"execAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"execData\",\"type\":\"bytes\"}],\"name\":\"postExecCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_taskCreator\",\"type\":\"address\"}],\"name\":\"preCancelTask\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_taskCreator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_execAddress\",\"type\":\"address\"}],\"name\":\"preCreateTask\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_execAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_execData\",\"type\":\"bytes\"}],\"name\":\"preExecCall\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"taskCreator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum LibDataTypes.Module\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"taskModuleAddresses\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"timedTask\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"nextExec\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"interval\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"encodeModuleArg(string,bytes)\":{\"params\":{\"_web3FunctionArgsHex\":\"Arguments to be passed into web3 function in hex.\",\"_web3FunctionHash\":\"IPFS hash of web3 function.\"}},\"onCreateTask(bytes32,address,address,bytes,bytes)\":{\"params\":{\"execAddress\":\"Address of contract that should be called.\",\"execData\":\"Execution data to be called with / function selector if execution data is yet to be determined.\",\"initModuleArg\":\"Encoded arguments for module if any.\",\"taskCreator\":\"The address which created the task.\",\"taskId\":\"Unique hash of the task created.\"}},\"postExecCall(bytes32,address,address,bytes)\":{\"params\":{\"execAddress\":\"Address of contract that should be called.\",\"execData\":\"Execution data to be called with / function selector if execution data is yet to be determined.\",\"taskCreator\":\"The address which created the task.\",\"taskId\":\"Unique hash of the task created.\"}},\"preCancelTask(bytes32,address)\":{\"details\":\"Modules can override taskCreator.\",\"params\":{\"taskCreator\":\"The address which created the task.\",\"taskId\":\"Unique hash of the task created.\"},\"returns\":{\"_0\":\"address Overriden or original taskCreator.\"}},\"preCreateTask(address,address)\":{\"details\":\"Modules can override execAddress or taskCreator. {See ProxyModule-preCreateTask}\",\"params\":{\"execAddress\":\"Address of contract that should be called.\",\"taskCreator\":\"The address which created the task.\"},\"returns\":{\"_0\":\"address Overriden or original taskCreator.\",\"_1\":\"address Overriden or original execAddress.\"}},\"preExecCall(bytes32,address,address,bytes)\":{\"params\":{\"execAddress\":\"Address of contract that should be called.\",\"execData\":\"Execution data to be called with / function selector if execution data is yet to be determined.\",\"taskCreator\":\"The address which created the task.\",\"taskId\":\"Unique hash of the task created.\"},\"returns\":{\"_0\":\"address Overriden or original execution address.\",\"_1\":\"bytes Overriden or original execution data.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"encodeModuleArg(string,bytes)\":{\"notice\":\"Helper function to encode arguments for Web3FunctionModule.\"},\"onCreateTask(bytes32,address,address,bytes,bytes)\":{\"notice\":\"Initiates task module whenever `createTask` is being called.\"},\"postExecCall(bytes32,address,address,bytes)\":{\"notice\":\"Called during `exec` and after execAddress is called.\"},\"preCancelTask(bytes32,address)\":{\"notice\":\"Called before taskId is removed from _createdTasks[].\"},\"preCreateTask(address,address)\":{\"notice\":\"Called before generating taskId.\"},\"preExecCall(bytes32,address,address,bytes)\":{\"notice\":\"Called during `exec` and before execAddress is called.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/taskModules/Web3FunctionModule.sol\":\"Web3FunctionModule\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9772845c886f87a3aab315f8d6b68aa599027c20f441b131cd4afaf65b588900\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad2f29a9c17a4f746416c9e254e17671f43c409dbfa6e4d7d76c3e4a83212d31\",\"dweb:/ipfs/QmTqU65L6iu6yqmXKzcNLPioR8etzKPWycpDJCm17ifVdS\"]},\"contracts/AutomateStorage.sol\":{\"keccak256\":\"0xfd89c084cf9f5099605b648debf5f3757e442003b4c2895a53a53b4d06c8a800\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://693ebfd5c65667652320d599be31d20c5c641680bf6109d88de2a6aa9c87f6dd\",\"dweb:/ipfs/Qmc79DExaocrxTAWgYRLQC5FdWKxpqKrpyYTimiUF5uwjC\"]},\"contracts/functions/FExec.sol\":{\"keccak256\":\"0x48375d0645cf4dfe7d3f18dc727cbb2322a09233a2e9cce9352a73acc357bf07\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9c93cce6a8a254e323227075064c9c897885ac65a64a9b2486bf7f18e294b96a\",\"dweb:/ipfs/QmbU5P1puBobxcycovew1PC5HSzsdMVNdf88PVRbrK6V5q\"]},\"contracts/interfaces/ITaskModule.sol\":{\"keccak256\":\"0xd537257852c23ce7d0bc392b03aba1efd750be372d64a01edf1c726ef7c4274d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://279804efd2c93f8e5282947429deb438776b39f9f6426bb88b17206aa98df131\",\"dweb:/ipfs/QmWKTJ7xtrRENJPFZL4MzxiegB7h9cMPjqawggpYVk5sw9\"]},\"contracts/libraries/LibDataTypes.sol\":{\"keccak256\":\"0x5876a9713daf67a36768b25454b3317c015e46db2abf77820dee2845fac55ee0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cddf6e6739462876ec7a237e2865a9d74cb5e6062ad40e2de528eadd6d1f40\",\"dweb:/ipfs/QmUi4dDoD5WPvwzm1L3sHefDMjuDC1pZWcW5mh7bYihqqu\"]},\"contracts/taskModules/TaskModuleBase.sol\":{\"keccak256\":\"0x231bcf0d6af7d2e0f96eb4eb83285fe0ea0d64d3aa937c6af29779cf653af695\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5d55f4944e8a91c9df605acf0c69c89d67d6302336ea46d2356bf101e038c56a\",\"dweb:/ipfs/QmShpsJtHNQjz8FLjsQDg9c6UrmwjqnhDaJea26HPUS5dz\"]},\"contracts/taskModules/Web3FunctionModule.sol\":{\"keccak256\":\"0xab0ed462273f102db2e9a3256d43a5423ace3c3001d120307c258989d2d67d67\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://54cbbc687145b69ef8c90e872f363982ade5da9d06d83c00b56b2e5f97762dbe\",\"dweb:/ipfs/QmaPoj4NMfSFY1EATbEwC2K9tBkAQ8Y1fYzFTQbq71436A\"]},\"contracts/vendor/gelato/GelatoBytes.sol\":{\"keccak256\":\"0x6ec59b2c6f678f3bbe186677e5970e59e46a40d22881dc813c49ffb18e417951\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://093f26ef7aefbf1c3c01212d52c5dca1fc971d44becc8104fc5c81f6d69ab75b\",\"dweb:/ipfs/QmVNPYJ5SJ7kGjzN3bv24rQgpwtsYSGxkuR1YEXK8vzYHP\"]}},\"version\":1}",
    "zk_version": "1.3.7"
  },
  "bytecode": "[encoded data, 15938 characters]",
  "deployedBytecode": "[encoded data, 15938 characters]",
  "devdoc": {
    "kind": "dev",
    "methods": {
      "encodeModuleArg(string,bytes)": {
        "params": {
          "_web3FunctionArgsHex": "Arguments to be passed into web3 function in hex.",
          "_web3FunctionHash": "IPFS hash of web3 function."
        }
      },
      "onCreateTask(bytes32,address,address,bytes,bytes)": {
        "params": {
          "execAddress": "Address of contract that should be called.",
          "execData": "Execution data to be called with / function selector if execution data is yet to be determined.",
          "initModuleArg": "Encoded arguments for module if any.",
          "taskCreator": "The address which created the task.",
          "taskId": "Unique hash of the task created."
        }
      },
      "postExecCall(bytes32,address,address,bytes)": {
        "params": {
          "execAddress": "Address of contract that should be called.",
          "execData": "Execution data to be called with / function selector if execution data is yet to be determined.",
          "taskCreator": "The address which created the task.",
          "taskId": "Unique hash of the task created."
        }
      },
      "preCancelTask(bytes32,address)": {
        "details": "Modules can override taskCreator.",
        "params": {
          "taskCreator": "The address which created the task.",
          "taskId": "Unique hash of the task created."
        },
        "returns": {
          "_0": "address Overriden or original taskCreator."
        }
      },
      "preCreateTask(address,address)": {
        "details": "Modules can override execAddress or taskCreator. {See ProxyModule-preCreateTask}",
        "params": {
          "execAddress": "Address of contract that should be called.",
          "taskCreator": "The address which created the task."
        },
        "returns": {
          "_0": "address Overriden or original taskCreator.",
          "_1": "address Overriden or original execAddress."
        }
      },
      "preExecCall(bytes32,address,address,bytes)": {
        "params": {
          "execAddress": "Address of contract that should be called.",
          "execData": "Execution data to be called with / function selector if execution data is yet to be determined.",
          "taskCreator": "The address which created the task.",
          "taskId": "Unique hash of the task created."
        },
        "returns": {
          "_0": "address Overriden or original execution address.",
          "_1": "bytes Overriden or original execution data."
        }
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {
      "encodeModuleArg(string,bytes)": {
        "notice": "Helper function to encode arguments for Web3FunctionModule."
      },
      "onCreateTask(bytes32,address,address,bytes,bytes)": {
        "notice": "Initiates task module whenever `createTask` is being called."
      },
      "postExecCall(bytes32,address,address,bytes)": {
        "notice": "Called during `exec` and after execAddress is called."
      },
      "preCancelTask(bytes32,address)": {
        "notice": "Called before taskId is removed from _createdTasks[]."
      },
      "preCreateTask(address,address)": {
        "notice": "Called before generating taskId."
      },
      "preExecCall(bytes32,address,address,bytes)": {
        "notice": "Called during `exec` and before execAddress is called."
      }
    },
    "version": 1
  },
  "storageLayout": {
    "storage": [
      {
        "astId": 2480,
        "contract": "contracts/taskModules/Web3FunctionModule.sol:Web3FunctionModule",
        "label": "taskCreator",
        "offset": 0,
        "slot": "0",
        "type": "t_mapping(t_bytes32,t_address)"
      },
      {
        "astId": 2485,
        "contract": "contracts/taskModules/Web3FunctionModule.sol:Web3FunctionModule",
        "label": "execAddresses",
        "offset": 0,
        "slot": "1",
        "type": "t_mapping(t_bytes32,t_address)"
      },
      {
        "astId": 2491,
        "contract": "contracts/taskModules/Web3FunctionModule.sol:Web3FunctionModule",
        "label": "_createdTasks",
        "offset": 0,
        "slot": "2",
        "type": "t_mapping(t_address,t_struct(Bytes32Set)1433_storage)"
      },
      {
        "astId": 2493,
        "contract": "contracts/taskModules/Web3FunctionModule.sol:Web3FunctionModule",
        "label": "fee",
        "offset": 0,
        "slot": "3",
        "type": "t_uint256"
      },
      {
        "astId": 2495,
        "contract": "contracts/taskModules/Web3FunctionModule.sol:Web3FunctionModule",
        "label": "feeToken",
        "offset": 0,
        "slot": "4",
        "type": "t_address"
      },
      {
        "astId": 2501,
        "contract": "contracts/taskModules/Web3FunctionModule.sol:Web3FunctionModule",
        "label": "timedTask",
        "offset": 0,
        "slot": "5",
        "type": "t_mapping(t_bytes32,t_struct(Time)5292_storage)"
      },
      {
        "astId": 2506,
        "contract": "contracts/taskModules/Web3FunctionModule.sol:Web3FunctionModule",
        "label": "taskModuleAddresses",
        "offset": 0,
        "slot": "6",
        "type": "t_mapping(t_enum(Module)5279,t_address)"
      },
      {
        "astId": 2510,
        "contract": "contracts/taskModules/Web3FunctionModule.sol:Web3FunctionModule",
        "label": "nonce1Balance",
        "offset": 0,
        "slot": "7",
        "type": "t_mapping(t_bytes32,t_uint256)"
      }
    ],
    "types": {
      "t_address": {
        "encoding": "inplace",
        "label": "address",
        "numberOfBytes": "20"
      },
      "t_array(t_bytes32)dyn_storage": {
        "base": "t_bytes32",
        "encoding": "dynamic_array",
        "label": "bytes32[]",
        "numberOfBytes": "32"
      },
      "t_bytes32": {
        "encoding": "inplace",
        "label": "bytes32",
        "numberOfBytes": "32"
      },
      "t_enum(Module)5279": {
        "encoding": "inplace",
        "label": "enum LibDataTypes.Module",
        "numberOfBytes": "1"
      },
      "t_mapping(t_address,t_struct(Bytes32Set)1433_storage)": {
        "encoding": "mapping",
        "key": "t_address",
        "label": "mapping(address => struct EnumerableSet.Bytes32Set)",
        "numberOfBytes": "32",
        "value": "t_struct(Bytes32Set)1433_storage"
      },
      "t_mapping(t_bytes32,t_address)": {
        "encoding": "mapping",
        "key": "t_bytes32",
        "label": "mapping(bytes32 => address)",
        "numberOfBytes": "32",
        "value": "t_address"
      },
      "t_mapping(t_bytes32,t_struct(Time)5292_storage)": {
        "encoding": "mapping",
        "key": "t_bytes32",
        "label": "mapping(bytes32 => struct LibDataTypes.Time)",
        "numberOfBytes": "32",
        "value": "t_struct(Time)5292_storage"
      },
      "t_mapping(t_bytes32,t_uint256)": {
        "encoding": "mapping",
        "key": "t_bytes32",
        "label": "mapping(bytes32 => uint256)",
        "numberOfBytes": "32",
        "value": "t_uint256"
      },
      "t_mapping(t_enum(Module)5279,t_address)": {
        "encoding": "mapping",
        "key": "t_enum(Module)5279",
        "label": "mapping(enum LibDataTypes.Module => address)",
        "numberOfBytes": "32",
        "value": "t_address"
      },
      "t_struct(Bytes32Set)1433_storage": {
        "encoding": "inplace",
        "label": "struct EnumerableSet.Bytes32Set",
        "members": [
          {
            "astId": 1432,
            "contract": "contracts/taskModules/Web3FunctionModule.sol:Web3FunctionModule",
            "label": "_inner",
            "offset": 0,
            "slot": "0",
            "type": "t_struct(Set)1239_storage"
          }
        ],
        "numberOfBytes": "64"
      },
      "t_struct(Set)1239_storage": {
        "encoding": "inplace",
        "label": "struct EnumerableSet.Set",
        "members": [
          {
            "astId": 1234,
            "contract": "contracts/taskModules/Web3FunctionModule.sol:Web3FunctionModule",
            "label": "_values",
            "offset": 0,
            "slot": "0",
            "type": "t_array(t_bytes32)dyn_storage"
          },
          {
            "astId": 1238,
            "contract": "contracts/taskModules/Web3FunctionModule.sol:Web3FunctionModule",
            "label": "_indexes",
            "offset": 0,
            "slot": "1",
            "type": "t_mapping(t_bytes32,t_uint256)"
          }
        ],
        "numberOfBytes": "64"
      },
      "t_struct(Time)5292_storage": {
        "encoding": "inplace",
        "label": "struct LibDataTypes.Time",
        "members": [
          {
            "astId": 5289,
            "contract": "contracts/taskModules/Web3FunctionModule.sol:Web3FunctionModule",
            "label": "nextExec",
            "offset": 0,
            "slot": "0",
            "type": "t_uint128"
          },
          {
            "astId": 5291,
            "contract": "contracts/taskModules/Web3FunctionModule.sol:Web3FunctionModule",
            "label": "interval",
            "offset": 16,
            "slot": "0",
            "type": "t_uint128"
          }
        ],
        "numberOfBytes": "32"
      },
      "t_uint128": {
        "encoding": "inplace",
        "label": "uint128",
        "numberOfBytes": "16"
      },
      "t_uint256": {
        "encoding": "inplace",
        "label": "uint256",
        "numberOfBytes": "32"
      }
    }
  }
}
