{
  "address": "0x79C89EB44cc9b6F59638aFdc808b547c8cC8E54D",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_expression",
          "type": "string"
        }
      ],
      "name": "encodeCronTriggerModuleArg",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_address",
          "type": "address"
        },
        {
          "internalType": "bytes32[][]",
          "name": "_topics",
          "type": "bytes32[][]"
        },
        {
          "internalType": "uint256",
          "name": "_blockConfirmations",
          "type": "uint256"
        }
      ],
      "name": "encodeEventTriggerModuleArg",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint128",
          "name": "_start",
          "type": "uint128"
        },
        {
          "internalType": "uint128",
          "name": "_interval",
          "type": "uint128"
        }
      ],
      "name": "encodeTimeTriggerModuleArg",
      "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": "0xb186c3deb9afc7cdc21d7d07de2167d27672edf962795f02d109f33ee3f0e642",
  "receipt": {
    "to": "0x0000000000000000000000000000000000008006",
    "from": "0x54F787Fc6aa02Bf010801140E4E608bBEEe39221",
    "contractAddress": "0x79C89EB44cc9b6F59638aFdc808b547c8cC8E54D",
    "transactionIndex": 28,
    "gasUsed": "3975698",
    "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
    "blockHash": "0x48b5161e113d30074fbe9d9bd7b79a64e03f14f3c2e7aafc1df6c53ec16e680f",
    "transactionHash": "0xb186c3deb9afc7cdc21d7d07de2167d27672edf962795f02d109f33ee3f0e642",
    "logs": [
      {
        "transactionIndex": 28,
        "blockNumber": 16580296,
        "transactionHash": "0xb186c3deb9afc7cdc21d7d07de2167d27672edf962795f02d109f33ee3f0e642",
        "address": "0x000000000000000000000000000000000000800A",
        "topics": [
          "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
          "0x00000000000000000000000054f787fc6aa02bf010801140e4e608bbeee39221",
          "0x0000000000000000000000000000000000000000000000000000000000008001"
        ],
        "data": "0x00000000000000000000000000000000000000000000000000055a639c0e5380",
        "logIndex": 159,
        "blockHash": "0x48b5161e113d30074fbe9d9bd7b79a64e03f14f3c2e7aafc1df6c53ec16e680f"
      },
      {
        "transactionIndex": 28,
        "blockNumber": 16580296,
        "transactionHash": "0xb186c3deb9afc7cdc21d7d07de2167d27672edf962795f02d109f33ee3f0e642",
        "address": "0x0000000000000000000000000000000000008008",
        "topics": [
          "0x3a36e47291f4201faf137fab081d92295bce2d53be2c6ca68ba82c7faa9ce241",
          "0x000000000000000000000000000000000000000000000000000000000000800e",
          "0x8fecd6ba65363a736db31d6be7c6f64c9d6f2eb25ba109381a0b1e1911676f6b"
        ],
        "data": "[encoded data, 15618 characters]",
        "logIndex": 160,
        "blockHash": "0x48b5161e113d30074fbe9d9bd7b79a64e03f14f3c2e7aafc1df6c53ec16e680f"
      },
      {
        "transactionIndex": 28,
        "blockNumber": 16580296,
        "transactionHash": "0xb186c3deb9afc7cdc21d7d07de2167d27672edf962795f02d109f33ee3f0e642",
        "address": "0x0000000000000000000000000000000000008004",
        "topics": [
          "0xc94722ff13eacf53547c4741dab5228353a05938ffcdd5d4a2d533ae0e618287",
          "0x0100014f4c2fbb56564444f8cc0f4a6c096bf8784dc2def90ec4e3454df995a9",
          "0x0000000000000000000000000000000000000000000000000000000000000000"
        ],
        "data": "0x",
        "logIndex": 161,
        "blockHash": "0x48b5161e113d30074fbe9d9bd7b79a64e03f14f3c2e7aafc1df6c53ec16e680f"
      },
      {
        "transactionIndex": 28,
        "blockNumber": 16580296,
        "transactionHash": "0xb186c3deb9afc7cdc21d7d07de2167d27672edf962795f02d109f33ee3f0e642",
        "address": "0x0000000000000000000000000000000000008006",
        "topics": [
          "0x290afdae231a3fc0bbae8b1af63698b0a1d79b21ad17df0342dfb952fe74f8e5",
          "0x00000000000000000000000054f787fc6aa02bf010801140e4e608bbeee39221",
          "0x0100014f4c2fbb56564444f8cc0f4a6c096bf8784dc2def90ec4e3454df995a9",
          "0x00000000000000000000000079c89eb44cc9b6f59638afdc808b547c8cc8e54d"
        ],
        "data": "0x",
        "logIndex": 162,
        "blockHash": "0x48b5161e113d30074fbe9d9bd7b79a64e03f14f3c2e7aafc1df6c53ec16e680f"
      },
      {
        "transactionIndex": 28,
        "blockNumber": 16580296,
        "transactionHash": "0xb186c3deb9afc7cdc21d7d07de2167d27672edf962795f02d109f33ee3f0e642",
        "address": "0x000000000000000000000000000000000000800A",
        "topics": [
          "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
          "0x0000000000000000000000000000000000000000000000000000000000008001",
          "0x00000000000000000000000054f787fc6aa02bf010801140e4e608bbeee39221"
        ],
        "data": "0x0000000000000000000000000000000000000000000000000001d26b874cc680",
        "logIndex": 163,
        "blockHash": "0x48b5161e113d30074fbe9d9bd7b79a64e03f14f3c2e7aafc1df6c53ec16e680f"
      }
    ],
    "blockNumber": 16580296,
    "cumulativeGasUsed": "0",
    "status": 1,
    "byzantium": true
  },
  "args": [],
  "numDeployments": 1,
  "solcInputHash": "f7d829f4fa1c5ee7e6cc4ff344ecddf7",
  "metadata": {
    "optimizer_settings": "M3B3",
    "solc_metadata": "{\"compiler\":{\"version\":\"0.8.14+commit.80d49f37\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_expression\",\"type\":\"string\"}],\"name\":\"encodeCronTriggerModuleArg\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"},{\"internalType\":\"bytes32[][]\",\"name\":\"_topics\",\"type\":\"bytes32[][]\"},{\"internalType\":\"uint256\",\"name\":\"_blockConfirmations\",\"type\":\"uint256\"}],\"name\":\"encodeEventTriggerModuleArg\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_start\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_interval\",\"type\":\"uint128\"}],\"name\":\"encodeTimeTriggerModuleArg\",\"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\":{\"encodeCronTriggerModuleArg(string)\":{\"params\":{\"_expression\":\"Cron expression\"}},\"encodeEventTriggerModuleArg(address,bytes32[][],uint256)\":{\"params\":{\"_address\":\"Address to listen to for events.\",\"_blockConfirmations\":\"Number of blocks to wait for before triggering.\",\"_topics\":\"Set of topics to filter at each topic position.\"}},\"encodeTimeTriggerModuleArg(uint128,uint128)\":{\"params\":{\"_interval\":\"Time interval between each execution.\",\"_start\":\"Time when the first execution should occur.\"}},\"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\":{\"encodeCronTriggerModuleArg(string)\":{\"notice\":\"Helper function to encode arguments for TriggerModule for Cron.\"},\"encodeEventTriggerModuleArg(address,bytes32[][],uint256)\":{\"notice\":\"Helper function to encode arguments for TriggerModule for Event.\"},\"encodeTimeTriggerModuleArg(uint128,uint128)\":{\"notice\":\"Helper function to encode arguments for TriggerModule for Timer.\"},\"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/TriggerModule.sol\":\"TriggerModule\"},\"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\":\"0xdc7009675d6be9436f1223a82c64b80f8f2ef8c2a594298bf6d5db8b201d45f8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bc95a08bece5941384260a54376b07f4ca30024fc4f1ca51d7d12ffc42fb74ef\",\"dweb:/ipfs/QmNNyaJgxfyPzVbQd7oTPav86gn1swhvg7AyxSQrG2Vj7t\"]},\"contracts/interfaces/ITaskModule.sol\":{\"keccak256\":\"0xd537257852c23ce7d0bc392b03aba1efd750be372d64a01edf1c726ef7c4274d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://279804efd2c93f8e5282947429deb438776b39f9f6426bb88b17206aa98df131\",\"dweb:/ipfs/QmWKTJ7xtrRENJPFZL4MzxiegB7h9cMPjqawggpYVk5sw9\"]},\"contracts/libraries/LibDataTypes.sol\":{\"keccak256\":\"0x34088caa0a883d4188a7c07266838605e4b3b12a75208cf1a686a322024d3f02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8879e4a081a0384137ab555c0b2e727447025133a075c37403098940811e168\",\"dweb:/ipfs/Qmf7oxJUP3Z1MDyj7DRVWyxdr7sbp6xAPUKaXJqXBjGKYX\"]},\"contracts/taskModules/TaskModuleBase.sol\":{\"keccak256\":\"0x231bcf0d6af7d2e0f96eb4eb83285fe0ea0d64d3aa937c6af29779cf653af695\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5d55f4944e8a91c9df605acf0c69c89d67d6302336ea46d2356bf101e038c56a\",\"dweb:/ipfs/QmShpsJtHNQjz8FLjsQDg9c6UrmwjqnhDaJea26HPUS5dz\"]},\"contracts/taskModules/TriggerModule.sol\":{\"keccak256\":\"0xbba86235deea100765f5e9681066f261f6225edc83c19b4fc9f309a10af4ac91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8357a4733f9497cae1c2588b8642858cb8558dfe14fdb52c3fd3c4f23a961499\",\"dweb:/ipfs/QmSvAgdk1H6HCAKZQWbLHRcfN7exk8eNhCoKg6Uf4gBYN3\"]}},\"version\":1}",
    "zk_version": "1.3.7"
  },
  "bytecode": "[encoded data, 21442 characters]",
  "deployedBytecode": "[encoded data, 21442 characters]",
  "devdoc": {
    "kind": "dev",
    "methods": {
      "encodeCronTriggerModuleArg(string)": {
        "params": {
          "_expression": "Cron expression"
        }
      },
      "encodeEventTriggerModuleArg(address,bytes32[][],uint256)": {
        "params": {
          "_address": "Address to listen to for events.",
          "_blockConfirmations": "Number of blocks to wait for before triggering.",
          "_topics": "Set of topics to filter at each topic position."
        }
      },
      "encodeTimeTriggerModuleArg(uint128,uint128)": {
        "params": {
          "_interval": "Time interval between each execution.",
          "_start": "Time when the first execution should occur."
        }
      },
      "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": {
      "encodeCronTriggerModuleArg(string)": {
        "notice": "Helper function to encode arguments for TriggerModule for Cron."
      },
      "encodeEventTriggerModuleArg(address,bytes32[][],uint256)": {
        "notice": "Helper function to encode arguments for TriggerModule for Event."
      },
      "encodeTimeTriggerModuleArg(uint128,uint128)": {
        "notice": "Helper function to encode arguments for TriggerModule for Timer."
      },
      "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": 2022,
        "contract": "contracts/taskModules/TriggerModule.sol:TriggerModule",
        "label": "taskCreator",
        "offset": 0,
        "slot": "0",
        "type": "t_mapping(t_bytes32,t_address)"
      },
      {
        "astId": 2027,
        "contract": "contracts/taskModules/TriggerModule.sol:TriggerModule",
        "label": "execAddresses",
        "offset": 0,
        "slot": "1",
        "type": "t_mapping(t_bytes32,t_address)"
      },
      {
        "astId": 2033,
        "contract": "contracts/taskModules/TriggerModule.sol:TriggerModule",
        "label": "_createdTasks",
        "offset": 0,
        "slot": "2",
        "type": "t_mapping(t_address,t_struct(Bytes32Set)1120_storage)"
      },
      {
        "astId": 2035,
        "contract": "contracts/taskModules/TriggerModule.sol:TriggerModule",
        "label": "fee",
        "offset": 0,
        "slot": "3",
        "type": "t_uint256"
      },
      {
        "astId": 2037,
        "contract": "contracts/taskModules/TriggerModule.sol:TriggerModule",
        "label": "feeToken",
        "offset": 0,
        "slot": "4",
        "type": "t_address"
      },
      {
        "astId": 2043,
        "contract": "contracts/taskModules/TriggerModule.sol:TriggerModule",
        "label": "timedTask",
        "offset": 0,
        "slot": "5",
        "type": "t_mapping(t_bytes32,t_struct(Time)4462_storage)"
      },
      {
        "astId": 2049,
        "contract": "contracts/taskModules/TriggerModule.sol:TriggerModule",
        "label": "taskModuleAddresses",
        "offset": 0,
        "slot": "6",
        "type": "t_mapping(t_enum(Module)4449,t_address)"
      },
      {
        "astId": 2053,
        "contract": "contracts/taskModules/TriggerModule.sol:TriggerModule",
        "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)4449": {
        "encoding": "inplace",
        "label": "enum LibDataTypes.Module",
        "numberOfBytes": "1"
      },
      "t_mapping(t_address,t_struct(Bytes32Set)1120_storage)": {
        "encoding": "mapping",
        "key": "t_address",
        "label": "mapping(address => struct EnumerableSet.Bytes32Set)",
        "numberOfBytes": "32",
        "value": "t_struct(Bytes32Set)1120_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)4462_storage)": {
        "encoding": "mapping",
        "key": "t_bytes32",
        "label": "mapping(bytes32 => struct LibDataTypes.Time)",
        "numberOfBytes": "32",
        "value": "t_struct(Time)4462_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)4449,t_address)": {
        "encoding": "mapping",
        "key": "t_enum(Module)4449",
        "label": "mapping(enum LibDataTypes.Module => address)",
        "numberOfBytes": "32",
        "value": "t_address"
      },
      "t_struct(Bytes32Set)1120_storage": {
        "encoding": "inplace",
        "label": "struct EnumerableSet.Bytes32Set",
        "members": [
          {
            "astId": 1119,
            "contract": "contracts/taskModules/TriggerModule.sol:TriggerModule",
            "label": "_inner",
            "offset": 0,
            "slot": "0",
            "type": "t_struct(Set)926_storage"
          }
        ],
        "numberOfBytes": "64"
      },
      "t_struct(Set)926_storage": {
        "encoding": "inplace",
        "label": "struct EnumerableSet.Set",
        "members": [
          {
            "astId": 921,
            "contract": "contracts/taskModules/TriggerModule.sol:TriggerModule",
            "label": "_values",
            "offset": 0,
            "slot": "0",
            "type": "t_array(t_bytes32)dyn_storage"
          },
          {
            "astId": 925,
            "contract": "contracts/taskModules/TriggerModule.sol:TriggerModule",
            "label": "_indexes",
            "offset": 0,
            "slot": "1",
            "type": "t_mapping(t_bytes32,t_uint256)"
          }
        ],
        "numberOfBytes": "64"
      },
      "t_struct(Time)4462_storage": {
        "encoding": "inplace",
        "label": "struct LibDataTypes.Time",
        "members": [
          {
            "astId": 4459,
            "contract": "contracts/taskModules/TriggerModule.sol:TriggerModule",
            "label": "nextExec",
            "offset": 0,
            "slot": "0",
            "type": "t_uint128"
          },
          {
            "astId": 4461,
            "contract": "contracts/taskModules/TriggerModule.sol:TriggerModule",
            "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"
      }
    }
  }
}
