{ "address": "0x25aD59adbe00C2d80c86d01e2E05e1294DA84823", "abi": [ { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "components": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "address", "name": "userProxy", "type": "address" }, { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "module", "type": "address" } ], "internalType": "struct Provider", "name": "provider", "type": "tuple" }, { "internalType": "uint256", "name": "index", "type": "uint256" }, { "components": [ { "components": [ { "internalType": "address", "name": "inst", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct Condition[]", "name": "conditions", "type": "tuple[]" }, { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "enum Operation", "name": "operation", "type": "uint8" }, { "internalType": "enum DataFlow", "name": "dataFlow", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bool", "name": "termsOkCheck", "type": "bool" } ], "internalType": "struct Action[]", "name": "actions", "type": "tuple[]" }, { "internalType": "uint256", "name": "selfProviderGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "selfProviderGasPriceCeil", "type": "uint256" } ], "internalType": "struct Task[]", "name": "tasks", "type": "tuple[]" }, { "internalType": "uint256", "name": "expiryDate", "type": "uint256" }, { "internalType": "uint256", "name": "cycleId", "type": "uint256" }, { "internalType": "uint256", "name": "submissionsLeft", "type": "uint256" } ], "indexed": true, "internalType": "struct TaskReceipt[]", "name": "taskReceipt", "type": "tuple[]" }, { "indexed": false, "internalType": "uint256", "name": "getId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "setId", "type": "uint256" } ], "name": "LogMultiCancelTasks", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "executor", "type": "address" }, { "components": [ { "internalType": "address[]", "name": "conditions", "type": "address[]" }, { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "enum Operation", "name": "operation", "type": "uint8" }, { "internalType": "enum DataFlow", "name": "dataFlow", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bool", "name": "termsOkCheck", "type": "bool" } ], "internalType": "struct Action[]", "name": "actions", "type": "tuple[]" }, { "internalType": "uint256", "name": "gasPriceCeil", "type": "uint256" } ], "indexed": true, "internalType": "struct TaskSpec[]", "name": "taskspecs", "type": "tuple[]" }, { "indexed": true, "internalType": "address[]", "name": "modules", "type": "address[]" }, { "indexed": false, "internalType": "uint256", "name": "ethToDeposit", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "getId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "setId", "type": "uint256" } ], "name": "LogMultiProvide", "type": "event" }, { "anonymous": false, "inputs": [ { "components": [ { "internalType": "address[]", "name": "conditions", "type": "address[]" }, { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "enum Operation", "name": "operation", "type": "uint8" }, { "internalType": "enum DataFlow", "name": "dataFlow", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bool", "name": "termsOkCheck", "type": "bool" } ], "internalType": "struct Action[]", "name": "actions", "type": "tuple[]" }, { "internalType": "uint256", "name": "gasPriceCeil", "type": "uint256" } ], "indexed": true, "internalType": "struct TaskSpec[]", "name": "taskspecs", "type": "tuple[]" }, { "indexed": true, "internalType": "address[]", "name": "modules", "type": "address[]" }, { "indexed": false, "internalType": "uint256", "name": "ethToWithdraw", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "getId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "setId", "type": "uint256" } ], "name": "LogMultiUnprovide", "type": "event" }, { "anonymous": false, "inputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "module", "type": "address" } ], "indexed": true, "internalType": "struct Provider", "name": "provider", "type": "tuple" }, { "components": [ { "components": [ { "internalType": "address", "name": "inst", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct Condition[]", "name": "conditions", "type": "tuple[]" }, { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "enum Operation", "name": "operation", "type": "uint8" }, { "internalType": "enum DataFlow", "name": "dataFlow", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bool", "name": "termsOkCheck", "type": "bool" } ], "internalType": "struct Action[]", "name": "actions", "type": "tuple[]" }, { "internalType": "uint256", "name": "selfProviderGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "selfProviderGasPriceCeil", "type": "uint256" } ], "indexed": true, "internalType": "struct Task", "name": "task", "type": "tuple" }, { "indexed": true, "internalType": "uint256", "name": "expiryDate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "getId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "setId", "type": "uint256" } ], "name": "LogSubmitTask", "type": "event" }, { "anonymous": false, "inputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "module", "type": "address" } ], "indexed": true, "internalType": "struct Provider", "name": "provider", "type": "tuple" }, { "components": [ { "components": [ { "internalType": "address", "name": "inst", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct Condition[]", "name": "conditions", "type": "tuple[]" }, { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "enum Operation", "name": "operation", "type": "uint8" }, { "internalType": "enum DataFlow", "name": "dataFlow", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bool", "name": "termsOkCheck", "type": "bool" } ], "internalType": "struct Action[]", "name": "actions", "type": "tuple[]" }, { "internalType": "uint256", "name": "selfProviderGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "selfProviderGasPriceCeil", "type": "uint256" } ], "indexed": true, "internalType": "struct Task[]", "name": "tasks", "type": "tuple[]" }, { "indexed": true, "internalType": "uint256", "name": "expiryDate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "getId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "setId", "type": "uint256" } ], "name": "LogSubmitTaskChain", "type": "event" }, { "anonymous": false, "inputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "module", "type": "address" } ], "indexed": true, "internalType": "struct Provider", "name": "provider", "type": "tuple" }, { "components": [ { "components": [ { "internalType": "address", "name": "inst", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct Condition[]", "name": "conditions", "type": "tuple[]" }, { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "enum Operation", "name": "operation", "type": "uint8" }, { "internalType": "enum DataFlow", "name": "dataFlow", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bool", "name": "termsOkCheck", "type": "bool" } ], "internalType": "struct Action[]", "name": "actions", "type": "tuple[]" }, { "internalType": "uint256", "name": "selfProviderGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "selfProviderGasPriceCeil", "type": "uint256" } ], "indexed": true, "internalType": "struct Task[]", "name": "tasks", "type": "tuple[]" }, { "indexed": true, "internalType": "uint256", "name": "expiryDate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "getId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "setId", "type": "uint256" } ], "name": "LogSubmitTaskCycle", "type": "event" }, { "inputs": [], "name": "connectorID", "outputs": [ { "internalType": "uint256", "name": "_type", "type": "uint256" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "address", "name": "userProxy", "type": "address" }, { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "module", "type": "address" } ], "internalType": "struct Provider", "name": "provider", "type": "tuple" }, { "internalType": "uint256", "name": "index", "type": "uint256" }, { "components": [ { "components": [ { "internalType": "address", "name": "inst", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct Condition[]", "name": "conditions", "type": "tuple[]" }, { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "enum Operation", "name": "operation", "type": "uint8" }, { "internalType": "enum DataFlow", "name": "dataFlow", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bool", "name": "termsOkCheck", "type": "bool" } ], "internalType": "struct Action[]", "name": "actions", "type": "tuple[]" }, { "internalType": "uint256", "name": "selfProviderGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "selfProviderGasPriceCeil", "type": "uint256" } ], "internalType": "struct Task[]", "name": "tasks", "type": "tuple[]" }, { "internalType": "uint256", "name": "expiryDate", "type": "uint256" }, { "internalType": "uint256", "name": "cycleId", "type": "uint256" }, { "internalType": "uint256", "name": "submissionsLeft", "type": "uint256" } ], "internalType": "struct TaskReceipt[]", "name": "_taskReceipts", "type": "tuple[]" } ], "name": "multiCancelTasks", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_executor", "type": "address" }, { "components": [ { "internalType": "address[]", "name": "conditions", "type": "address[]" }, { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "enum Operation", "name": "operation", "type": "uint8" }, { "internalType": "enum DataFlow", "name": "dataFlow", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bool", "name": "termsOkCheck", "type": "bool" } ], "internalType": "struct Action[]", "name": "actions", "type": "tuple[]" }, { "internalType": "uint256", "name": "gasPriceCeil", "type": "uint256" } ], "internalType": "struct TaskSpec[]", "name": "_taskSpecs", "type": "tuple[]" }, { "internalType": "address[]", "name": "_modules", "type": "address[]" }, { "internalType": "uint256", "name": "_ethToDeposit", "type": "uint256" }, { "internalType": "uint256", "name": "_getId", "type": "uint256" }, { "internalType": "uint256", "name": "_setId", "type": "uint256" } ], "name": "multiProvide", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_withdrawAmount", "type": "uint256" }, { "components": [ { "internalType": "address[]", "name": "conditions", "type": "address[]" }, { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "enum Operation", "name": "operation", "type": "uint8" }, { "internalType": "enum DataFlow", "name": "dataFlow", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bool", "name": "termsOkCheck", "type": "bool" } ], "internalType": "struct Action[]", "name": "actions", "type": "tuple[]" }, { "internalType": "uint256", "name": "gasPriceCeil", "type": "uint256" } ], "internalType": "struct TaskSpec[]", "name": "_taskSpecs", "type": "tuple[]" }, { "internalType": "address[]", "name": "_modules", "type": "address[]" }, { "internalType": "uint256", "name": "_getId", "type": "uint256" }, { "internalType": "uint256", "name": "_setId", "type": "uint256" } ], "name": "multiUnprovide", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "module", "type": "address" } ], "internalType": "struct Provider", "name": "_provider", "type": "tuple" }, { "components": [ { "components": [ { "internalType": "address", "name": "inst", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct Condition[]", "name": "conditions", "type": "tuple[]" }, { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "enum Operation", "name": "operation", "type": "uint8" }, { "internalType": "enum DataFlow", "name": "dataFlow", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bool", "name": "termsOkCheck", "type": "bool" } ], "internalType": "struct Action[]", "name": "actions", "type": "tuple[]" }, { "internalType": "uint256", "name": "selfProviderGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "selfProviderGasPriceCeil", "type": "uint256" } ], "internalType": "struct Task", "name": "_task", "type": "tuple" }, { "internalType": "uint256", "name": "_expiryDate", "type": "uint256" } ], "name": "submitTask", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "module", "type": "address" } ], "internalType": "struct Provider", "name": "_provider", "type": "tuple" }, { "components": [ { "components": [ { "internalType": "address", "name": "inst", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct Condition[]", "name": "conditions", "type": "tuple[]" }, { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "enum Operation", "name": "operation", "type": "uint8" }, { "internalType": "enum DataFlow", "name": "dataFlow", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bool", "name": "termsOkCheck", "type": "bool" } ], "internalType": "struct Action[]", "name": "actions", "type": "tuple[]" }, { "internalType": "uint256", "name": "selfProviderGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "selfProviderGasPriceCeil", "type": "uint256" } ], "internalType": "struct Task[]", "name": "_tasks", "type": "tuple[]" }, { "internalType": "uint256", "name": "_expiryDate", "type": "uint256" }, { "internalType": "uint256", "name": "_sumOfRequestedTaskSubmits", "type": "uint256" } ], "name": "submitTaskChain", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "module", "type": "address" } ], "internalType": "struct Provider", "name": "_provider", "type": "tuple" }, { "components": [ { "components": [ { "internalType": "address", "name": "inst", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct Condition[]", "name": "conditions", "type": "tuple[]" }, { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "enum Operation", "name": "operation", "type": "uint8" }, { "internalType": "enum DataFlow", "name": "dataFlow", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bool", "name": "termsOkCheck", "type": "bool" } ], "internalType": "struct Action[]", "name": "actions", "type": "tuple[]" }, { "internalType": "uint256", "name": "selfProviderGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "selfProviderGasPriceCeil", "type": "uint256" } ], "internalType": "struct Task[]", "name": "_tasks", "type": "tuple[]" }, { "internalType": "uint256", "name": "_expiryDate", "type": "uint256" }, { "internalType": "uint256", "name": "_cycles", "type": "uint256" } ], "name": "submitTaskCycle", "outputs": [], "stateMutability": "payable", "type": "function" } ], "transactionHash": "0xb291db38b8dc7fc661453c8c1e270fac0a208807292ad42fb06240f83259594e", "receipt": { "to": null, "from": "0x5B753BF02a42bC73B5846dfd16a8F2e082b99a6a", "contractAddress": "0x25aD59adbe00C2d80c86d01e2E05e1294DA84823", "transactionIndex": 94, "gasUsed": "1289004", "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "blockHash": "0x23cca093b1f7e994a5b00d135b6d865596936fb9e31a1f939cd863c7030c1ee8", "transactionHash": "0xb291db38b8dc7fc661453c8c1e270fac0a208807292ad42fb06240f83259594e", "logs": [], "blockNumber": 11366874, "cumulativeGasUsed": "7901309", "status": 1, "byzantium": true }, "args": [62], "solcInputHash": "32abadde127e3c5f4f727f0b5ec233f4", "metadata": "{\"compiler\":{\"version\":\"0.7.4+commit.3f05b770\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"userProxy\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"internalType\":\"struct Provider\",\"name\":\"provider\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"inst\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Condition[]\",\"name\":\"conditions\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"enum DataFlow\",\"name\":\"dataFlow\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"termsOkCheck\",\"type\":\"bool\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"selfProviderGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfProviderGasPriceCeil\",\"type\":\"uint256\"}],\"internalType\":\"struct Task[]\",\"name\":\"tasks\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"expiryDate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cycleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"submissionsLeft\",\"type\":\"uint256\"}],\"indexed\":true,\"internalType\":\"struct TaskReceipt[]\",\"name\":\"taskReceipt\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"getId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"setId\",\"type\":\"uint256\"}],\"name\":\"LogMultiCancelTasks\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"conditions\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"enum DataFlow\",\"name\":\"dataFlow\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"termsOkCheck\",\"type\":\"bool\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"gasPriceCeil\",\"type\":\"uint256\"}],\"indexed\":true,\"internalType\":\"struct TaskSpec[]\",\"name\":\"taskspecs\",\"type\":\"tuple[]\"},{\"indexed\":true,\"internalType\":\"address[]\",\"name\":\"modules\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ethToDeposit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"getId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"setId\",\"type\":\"uint256\"}],\"name\":\"LogMultiProvide\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"conditions\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"enum DataFlow\",\"name\":\"dataFlow\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"termsOkCheck\",\"type\":\"bool\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"gasPriceCeil\",\"type\":\"uint256\"}],\"indexed\":true,\"internalType\":\"struct TaskSpec[]\",\"name\":\"taskspecs\",\"type\":\"tuple[]\"},{\"indexed\":true,\"internalType\":\"address[]\",\"name\":\"modules\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ethToWithdraw\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"getId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"setId\",\"type\":\"uint256\"}],\"name\":\"LogMultiUnprovide\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"indexed\":true,\"internalType\":\"struct Provider\",\"name\":\"provider\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"inst\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Condition[]\",\"name\":\"conditions\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"enum DataFlow\",\"name\":\"dataFlow\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"termsOkCheck\",\"type\":\"bool\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"selfProviderGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfProviderGasPriceCeil\",\"type\":\"uint256\"}],\"indexed\":true,\"internalType\":\"struct Task\",\"name\":\"task\",\"type\":\"tuple\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"expiryDate\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"getId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"setId\",\"type\":\"uint256\"}],\"name\":\"LogSubmitTask\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"indexed\":true,\"internalType\":\"struct Provider\",\"name\":\"provider\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"inst\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Condition[]\",\"name\":\"conditions\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"enum DataFlow\",\"name\":\"dataFlow\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"termsOkCheck\",\"type\":\"bool\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"selfProviderGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfProviderGasPriceCeil\",\"type\":\"uint256\"}],\"indexed\":true,\"internalType\":\"struct Task[]\",\"name\":\"tasks\",\"type\":\"tuple[]\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"expiryDate\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"getId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"setId\",\"type\":\"uint256\"}],\"name\":\"LogSubmitTaskChain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"indexed\":true,\"internalType\":\"struct Provider\",\"name\":\"provider\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"inst\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Condition[]\",\"name\":\"conditions\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"enum DataFlow\",\"name\":\"dataFlow\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"termsOkCheck\",\"type\":\"bool\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"selfProviderGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfProviderGasPriceCeil\",\"type\":\"uint256\"}],\"indexed\":true,\"internalType\":\"struct Task[]\",\"name\":\"tasks\",\"type\":\"tuple[]\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"expiryDate\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"getId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"setId\",\"type\":\"uint256\"}],\"name\":\"LogSubmitTaskCycle\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"connectorID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_type\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"userProxy\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"internalType\":\"struct Provider\",\"name\":\"provider\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"inst\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Condition[]\",\"name\":\"conditions\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"enum DataFlow\",\"name\":\"dataFlow\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"termsOkCheck\",\"type\":\"bool\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"selfProviderGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfProviderGasPriceCeil\",\"type\":\"uint256\"}],\"internalType\":\"struct Task[]\",\"name\":\"tasks\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"expiryDate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cycleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"submissionsLeft\",\"type\":\"uint256\"}],\"internalType\":\"struct TaskReceipt[]\",\"name\":\"_taskReceipts\",\"type\":\"tuple[]\"}],\"name\":\"multiCancelTasks\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"conditions\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"enum DataFlow\",\"name\":\"dataFlow\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"termsOkCheck\",\"type\":\"bool\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"gasPriceCeil\",\"type\":\"uint256\"}],\"internalType\":\"struct TaskSpec[]\",\"name\":\"_taskSpecs\",\"type\":\"tuple[]\"},{\"internalType\":\"address[]\",\"name\":\"_modules\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"_ethToDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_getId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_setId\",\"type\":\"uint256\"}],\"name\":\"multiProvide\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_withdrawAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"conditions\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"enum DataFlow\",\"name\":\"dataFlow\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"termsOkCheck\",\"type\":\"bool\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"gasPriceCeil\",\"type\":\"uint256\"}],\"internalType\":\"struct TaskSpec[]\",\"name\":\"_taskSpecs\",\"type\":\"tuple[]\"},{\"internalType\":\"address[]\",\"name\":\"_modules\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"_getId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_setId\",\"type\":\"uint256\"}],\"name\":\"multiUnprovide\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"internalType\":\"struct Provider\",\"name\":\"_provider\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"inst\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Condition[]\",\"name\":\"conditions\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"enum DataFlow\",\"name\":\"dataFlow\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"termsOkCheck\",\"type\":\"bool\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"selfProviderGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfProviderGasPriceCeil\",\"type\":\"uint256\"}],\"internalType\":\"struct Task\",\"name\":\"_task\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"_expiryDate\",\"type\":\"uint256\"}],\"name\":\"submitTask\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"internalType\":\"struct Provider\",\"name\":\"_provider\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"inst\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Condition[]\",\"name\":\"conditions\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"enum DataFlow\",\"name\":\"dataFlow\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"termsOkCheck\",\"type\":\"bool\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"selfProviderGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfProviderGasPriceCeil\",\"type\":\"uint256\"}],\"internalType\":\"struct Task[]\",\"name\":\"_tasks\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"_expiryDate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_sumOfRequestedTaskSubmits\",\"type\":\"uint256\"}],\"name\":\"submitTaskChain\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"internalType\":\"struct Provider\",\"name\":\"_provider\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"inst\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Condition[]\",\"name\":\"conditions\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"enum DataFlow\",\"name\":\"dataFlow\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"termsOkCheck\",\"type\":\"bool\"}],\"internalType\":\"struct Action[]\",\"name\":\"actions\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"selfProviderGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfProviderGasPriceCeil\",\"type\":\"uint256\"}],\"internalType\":\"struct Task[]\",\"name\":\"_tasks\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"_expiryDate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_cycles\",\"type\":\"uint256\"}],\"name\":\"submitTaskCycle\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"connectorID()\":{\"details\":\"Connector Details\"},\"multiCancelTasks((uint256,address,(address,address),uint256,((address,bytes)[],(address,bytes,uint8,uint8,uint256,bool)[],uint256,uint256)[],uint256,uint256,uint256)[])\":{\"details\":\"Cancels outstanding Tasks\",\"params\":{\"_taskReceipts\":\"List of Task Receipts to cancel\"}},\"multiProvide(address,(address[],(address,bytes,uint8,uint8,uint256,bool)[],uint256)[],address[],uint256,uint256,uint256)\":{\"details\":\"Enables first time users to pre-fund eth, whitelist an executor & register the ProviderModuleDSA.sol to be able to use Gelato\",\"params\":{\"_ethToDeposit\":\"amount of eth to deposit on Gelato, only for self-providers\",\"_executor\":\"address of single execot node or gelato'S decentralized execution market\",\"_modules\":\"address of ProviderModuleDSA\",\"_taskSpecs\":\"enables external providers to whitelist TaskSpecs on gelato\"}},\"multiUnprovide(uint256,(address[],(address,bytes,uint8,uint8,uint256,bool)[],uint256)[],address[],uint256,uint256)\":{\"details\":\"Withdraws funds from Gelato, de-whitelists TaskSpecs and Provider Modules in one tx\",\"params\":{\"_modules\":\"List of Provider Modules to de-whitelist, default empty []\",\"_taskSpecs\":\"List of Task Specs to de-whitelist, default empty []\",\"_withdrawAmount\":\"Amount of ETH to withdraw from Gelato\"}},\"submitTask((address,address),((address,bytes)[],(address,bytes,uint8,uint8,uint256,bool)[],uint256,uint256),uint256)\":{\"details\":\"Submits a single, one-time task to Gelato\",\"params\":{\"_expiryDate\":\"Default 0, othweise timestamp after which the task expires\",\"_provider\":\"Consists of proxy module address (DSA) and provider address () who will pay for the transaction execution\",\"_task\":\"Task specifying the condition and the action connectors\"}},\"submitTaskChain((address,address),((address,bytes)[],(address,bytes,uint8,uint8,uint256,bool)[],uint256,uint256)[],uint256,uint256)\":{\"details\":\"Submits single or mulitple Task Chains to Gelato\",\"params\":{\"_expiryDate\":\"Default 0, othweise timestamp after which the task expires\",\"_provider\":\"Consists of proxy module address (DSA) and provider address () who will pay for the transaction execution\",\"_sumOfRequestedTaskSubmits\":\"The TOTAL number of Task auto-submits that should have occured once the cycle is complete\",\"_tasks\":\"A sequence of Tasks, can be a single or multiples\"}},\"submitTaskCycle((address,address),((address,bytes)[],(address,bytes,uint8,uint8,uint256,bool)[],uint256,uint256)[],uint256,uint256)\":{\"details\":\"Submits single or mulitple Task Sequences to Gelato\",\"params\":{\"_cycles\":\"How often the Task List should be executed, e.g. 5 times\",\"_expiryDate\":\"Default 0, othweise timestamp after which the task expires\",\"_provider\":\"Consists of proxy module address (DSA) and provider address () who will pay for the transaction execution\",\"_tasks\":\"A sequence of Tasks, can be a single or multiples\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/contracts/connectors/ConnectGelato.sol\":\"ConnectGelato\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/contracts/connectors/ConnectGelato.sol\":{\"content\":\"// SPDX-License-Identifier: UNLICENSED\\n\\npragma solidity 0.7.4;\\npragma experimental ABIEncoderV2;\\n\\n// solhint-disable\\n\\n// Gelato Data Types\\nstruct Provider {\\n address addr; // if msg.sender == provider => self-Provider\\n address module; // e.g. DSA Provider Module\\n}\\n\\nstruct Condition {\\n address inst; // can be AddressZero for self-conditional Actions\\n bytes data; // can be bytes32(0) for self-conditional Actions\\n}\\n\\nenum Operation {Call, Delegatecall}\\n\\nenum DataFlow {None, In, Out, InAndOut}\\n\\nstruct Action {\\n address addr;\\n bytes data;\\n Operation operation;\\n DataFlow dataFlow;\\n uint256 value;\\n bool termsOkCheck;\\n}\\n\\nstruct Task {\\n Condition[] conditions; // optional\\n Action[] actions;\\n uint256 selfProviderGasLimit; // optional: 0 defaults to gelatoMaxGas\\n uint256 selfProviderGasPriceCeil; // optional: 0 defaults to NO_CEIL\\n}\\n\\nstruct TaskReceipt {\\n uint256 id;\\n address userProxy;\\n Provider provider;\\n uint256 index;\\n Task[] tasks;\\n uint256 expiryDate;\\n uint256 cycleId; // auto-filled by GelatoCore. 0 for non-cyclic/chained tasks\\n uint256 submissionsLeft;\\n}\\n\\nstruct TaskSpec {\\n address[] conditions; // Address: optional AddressZero for self-conditional actions\\n Action[] actions;\\n uint256 gasPriceCeil;\\n}\\n\\n// Gelato Interface\\ninterface IGelatoInterface {\\n /**\\n * @dev API to submit a single Task.\\n */\\n function submitTask(\\n Provider calldata _provider,\\n Task calldata _task,\\n uint256 _expiryDate\\n ) external;\\n\\n /**\\n * @dev A Gelato Task Cycle consists of 1 or more Tasks that automatically submit\\n * the next one, after they have been executed, where the total number of tasks can\\n * be only be an even number\\n */\\n function submitTaskCycle(\\n Provider calldata _provider,\\n Task[] calldata _tasks,\\n uint256 _expiryDate,\\n uint256 _cycles\\n ) external;\\n\\n /**\\n * @dev A Gelato Task Chain consists of 1 or more Tasks that automatically submit\\n * the next one, after they have been executed, where the total number of tasks can\\n * be an odd number\\n */\\n function submitTaskChain(\\n Provider calldata _provider,\\n Task[] calldata _tasks,\\n uint256 _expiryDate,\\n uint256 _sumOfRequestedTaskSubmits\\n ) external;\\n\\n /**\\n * @dev Cancel multiple tasks at once\\n */\\n function multiCancelTasks(TaskReceipt[] calldata _taskReceipts) external;\\n\\n /**\\n * @dev Whitelist new executor, TaskSpec(s) and Module(s) in one tx\\n */\\n function multiProvide(\\n address _executor,\\n TaskSpec[] calldata _taskSpecs,\\n address[] calldata _modules\\n ) external payable;\\n\\n /**\\n * @dev De-Whitelist TaskSpec(s), Module(s) and withdraw funds from gelato in one tx\\n */\\n function multiUnprovide(\\n uint256 _withdrawAmount,\\n TaskSpec[] calldata _taskSpecs,\\n address[] calldata _modules\\n ) external;\\n}\\n\\ninterface MemoryInterface {\\n function setUint(uint256 _id, uint256 _val) external;\\n\\n function getUint(uint256 _id) external returns (uint256);\\n}\\n\\nabstract contract Helpers {\\n uint256 internal immutable _id;\\n\\n constructor(uint256 id) {\\n _id = id;\\n }\\n\\n /**\\n * @dev Return Memory Variable Address\\n */\\n function getMemoryAddr() internal pure returns (address) {\\n return 0x8a5419CfC711B2343c17a6ABf4B2bAFaBb06957F; // InstaMemory Address\\n }\\n\\n /**\\n * @dev Set Uint value in InstaMemory Contract.\\n */\\n function setUint(uint256 setId, uint256 val) internal {\\n if (setId != 0) MemoryInterface(getMemoryAddr()).setUint(setId, val);\\n }\\n\\n /**\\n * @dev Get Uint value from InstaMemory Contract.\\n */\\n function getUint(uint256 getId, uint256 val)\\n internal\\n returns (uint256 returnVal)\\n {\\n returnVal = getId == 0\\n ? val\\n : MemoryInterface(getMemoryAddr()).getUint(getId);\\n }\\n\\n /**\\n * @dev Connector Details\\n */\\n function connectorID() public view returns (uint256 _type, uint256 id) {\\n (_type, id) = (1, _id);\\n }\\n}\\n\\ncontract DSMath {\\n function add(uint256 x, uint256 y) internal pure returns (uint256 z) {\\n require((z = x + y) >= x, \\\"math-not-safe\\\");\\n }\\n\\n function sub(uint256 x, uint256 y) internal pure returns (uint256 z) {\\n require((z = x - y) <= x, \\\"sub-overflow\\\");\\n }\\n}\\n\\nabstract contract GelatoHelpers is Helpers, DSMath {\\n /**\\n * @dev Return Gelato Core Address\\n */\\n function getGelatoCoreAddr() internal pure returns (address) {\\n return 0x025030BdAa159f281cAe63873E68313a703725A5; // Gelato Core address\\n }\\n\\n /**\\n * @dev Return Instapp DSA Provider Module Address\\n */\\n function getInstadappProviderModuleAddr() internal pure returns (address) {\\n return 0x0C25452d20cdFeEd2983fa9b9b9Cf4E81D6f2fE2; // ProviderModuleDSA Address\\n }\\n}\\n\\nabstract contract GelatoResolver is GelatoHelpers {\\n event LogMultiProvide(\\n address indexed executor,\\n TaskSpec[] indexed taskspecs,\\n address[] indexed modules,\\n uint256 ethToDeposit,\\n uint256 getId,\\n uint256 setId\\n );\\n\\n event LogSubmitTask(\\n Provider indexed provider,\\n Task indexed task,\\n uint256 indexed expiryDate,\\n uint256 getId,\\n uint256 setId\\n );\\n\\n event LogSubmitTaskCycle(\\n Provider indexed provider,\\n Task[] indexed tasks,\\n uint256 indexed expiryDate,\\n uint256 getId,\\n uint256 setId\\n );\\n\\n event LogSubmitTaskChain(\\n Provider indexed provider,\\n Task[] indexed tasks,\\n uint256 indexed expiryDate,\\n uint256 getId,\\n uint256 setId\\n );\\n\\n event LogMultiUnprovide(\\n TaskSpec[] indexed taskspecs,\\n address[] indexed modules,\\n uint256 ethToWithdraw,\\n uint256 getId,\\n uint256 setId\\n );\\n\\n event LogMultiCancelTasks(\\n TaskReceipt[] indexed taskReceipt,\\n uint256 getId,\\n uint256 setId\\n );\\n\\n // ===== Gelato ENTRY APIs ======\\n\\n /**\\n * @dev Enables first time users to pre-fund eth, whitelist an executor & register the\\n * ProviderModuleDSA.sol to be able to use Gelato\\n * @param _executor address of single execot node or gelato'S decentralized execution market\\n * @param _taskSpecs enables external providers to whitelist TaskSpecs on gelato\\n * @param _modules address of ProviderModuleDSA\\n * @param _ethToDeposit amount of eth to deposit on Gelato, only for self-providers\\n */\\n function multiProvide(\\n address _executor,\\n TaskSpec[] calldata _taskSpecs,\\n address[] calldata _modules,\\n uint256 _ethToDeposit,\\n uint256 _getId,\\n uint256 _setId\\n ) external payable {\\n uint256 ethToDeposit = getUint(_getId, _ethToDeposit);\\n ethToDeposit = ethToDeposit == uint256(-1)\\n ? address(this).balance\\n : ethToDeposit;\\n\\n IGelatoInterface(getGelatoCoreAddr()).multiProvide{value: ethToDeposit}(\\n _executor,\\n _taskSpecs,\\n _modules\\n );\\n\\n setUint(_setId, ethToDeposit);\\n\\n emit LogMultiProvide(\\n _executor,\\n _taskSpecs,\\n _modules,\\n ethToDeposit,\\n _getId,\\n _setId\\n );\\n }\\n\\n /**\\n * @dev Submits a single, one-time task to Gelato\\n * @param _provider Consists of proxy module address (DSA) and provider address ()\\n * who will pay for the transaction execution\\n * @param _task Task specifying the condition and the action connectors\\n * @param _expiryDate Default 0, othweise timestamp after which the task expires\\n */\\n function submitTask(\\n Provider calldata _provider,\\n Task calldata _task,\\n uint256 _expiryDate\\n ) external payable {\\n IGelatoInterface(getGelatoCoreAddr()).submitTask(\\n _provider,\\n _task,\\n _expiryDate\\n );\\n\\n emit LogSubmitTask(_provider, _task, _expiryDate, 0, 0);\\n }\\n\\n /**\\n * @dev Submits single or mulitple Task Sequences to Gelato\\n * @param _provider Consists of proxy module address (DSA) and provider address ()\\n * who will pay for the transaction execution\\n * @param _tasks A sequence of Tasks, can be a single or multiples\\n * @param _expiryDate Default 0, othweise timestamp after which the task expires\\n * @param _cycles How often the Task List should be executed, e.g. 5 times\\n */\\n function submitTaskCycle(\\n Provider calldata _provider,\\n Task[] calldata _tasks,\\n uint256 _expiryDate,\\n uint256 _cycles\\n ) external payable {\\n IGelatoInterface(getGelatoCoreAddr()).submitTaskCycle(\\n _provider,\\n _tasks,\\n _expiryDate,\\n _cycles\\n );\\n\\n emit LogSubmitTaskCycle(_provider, _tasks, _expiryDate, 0, 0);\\n }\\n\\n /**\\n * @dev Submits single or mulitple Task Chains to Gelato\\n * @param _provider Consists of proxy module address (DSA) and provider address ()\\n * who will pay for the transaction execution\\n * @param _tasks A sequence of Tasks, can be a single or multiples\\n * @param _expiryDate Default 0, othweise timestamp after which the task expires\\n * @param _sumOfRequestedTaskSubmits The TOTAL number of Task auto-submits\\n * that should have occured once the cycle is complete\\n */\\n function submitTaskChain(\\n Provider calldata _provider,\\n Task[] calldata _tasks,\\n uint256 _expiryDate,\\n uint256 _sumOfRequestedTaskSubmits\\n ) external payable {\\n IGelatoInterface(getGelatoCoreAddr()).submitTaskChain(\\n _provider,\\n _tasks,\\n _expiryDate,\\n _sumOfRequestedTaskSubmits\\n );\\n\\n emit LogSubmitTaskChain(_provider, _tasks, _expiryDate, 0, 0);\\n }\\n\\n // ===== Gelato EXIT APIs ======\\n\\n /**\\n * @dev Withdraws funds from Gelato, de-whitelists TaskSpecs and Provider Modules\\n * in one tx\\n * @param _withdrawAmount Amount of ETH to withdraw from Gelato\\n * @param _taskSpecs List of Task Specs to de-whitelist, default empty []\\n * @param _modules List of Provider Modules to de-whitelist, default empty []\\n */\\n function multiUnprovide(\\n uint256 _withdrawAmount,\\n TaskSpec[] calldata _taskSpecs,\\n address[] calldata _modules,\\n uint256 _getId,\\n uint256 _setId\\n ) external payable {\\n uint256 withdrawAmount = getUint(_getId, _withdrawAmount);\\n uint256 balanceBefore = address(this).balance;\\n\\n IGelatoInterface(getGelatoCoreAddr()).multiUnprovide(\\n withdrawAmount,\\n _taskSpecs,\\n _modules\\n );\\n\\n uint256 actualWithdrawAmount =\\n sub(address(this).balance, balanceBefore);\\n\\n setUint(_setId, actualWithdrawAmount);\\n\\n emit LogMultiUnprovide(\\n _taskSpecs,\\n _modules,\\n actualWithdrawAmount,\\n _getId,\\n _setId\\n );\\n }\\n\\n /**\\n * @dev Cancels outstanding Tasks\\n * @param _taskReceipts List of Task Receipts to cancel\\n */\\n function multiCancelTasks(TaskReceipt[] calldata _taskReceipts)\\n external\\n payable\\n {\\n IGelatoInterface(getGelatoCoreAddr()).multiCancelTasks(_taskReceipts);\\n\\n emit LogMultiCancelTasks(_taskReceipts, 0, 0);\\n }\\n}\\n\\ncontract ConnectGelato is GelatoResolver {\\n string public name = \\\"ConnectGelato-v2.0\\\";\\n\\n constructor(uint256 _id) Helpers(_id) {}\\n}\\n\",\"keccak256\":\"0xf0f61797ae78abf2eb39d9c7bacefb385dfdfdd10aabd4af918cfbf7f71539b7\",\"license\":\"UNLICENSED\"}},\"version\":1}", "bytecode": "0x60e0604052601260a0819052710436f6e6e65637447656c61746f2d76322e360741b60c09081526200003591600091906200006f565b503480156200004357600080fd5b50604051620017343803806200173483398101604081905262000066916200011b565b60805262000134565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620000a75760008555620000f2565b82601f10620000c257805160ff1916838001178555620000f2565b82800160010185558215620000f2579182015b82811115620000f2578251825591602001919060010190620000d5565b506200010092915062000104565b5090565b5b8082111562000100576000815560010162000105565b6000602082840312156200012d578081fd5b5051919050565b6080516115e56200014f6000398061066152506115e56000f3fe60806040526004361061007b5760003560e01c80636cd3d8981161004e5780636cd3d898146100e6578063b348e268146100f9578063eb15f7811461010c578063ff92b1a81461012f5761007b565b8063025264901461008057806306fdde03146100955780632738a788146100c05780633e75a9a8146100d3575b600080fd5b61009361008e366004610a31565b610142565b005b3480156100a157600080fd5b506100aa61021f565b6040516100b79190611398565b60405180910390f35b6100936100ce366004610b08565b6102ad565b6100936100e13660046109f1565b6103b8565b6100936100f436600461095c565b610475565b610093610107366004610a31565b61058e565b34801561011857600080fd5b5061012161065c565b6040516100b792919061138a565b61009361013d366004610a95565b610683565b61014a610758565b6001600160a01b0316630252649086868686866040518663ffffffff1660e01b815260040161017d959493929190611411565b600060405180830381600087803b15801561019757600080fd5b505af11580156101ab573d6000803e3d6000fd5b505050508184846040516101c0929190611244565b6040518091039020866040516101d69190611251565b60405180910390207f6e618ca93d8007a3bb048d87cc0e7bf12bddc6ca3e336c153890bc0b6f66e9f660008060405161021092919061138a565b60405180910390a45050505050565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102a55780601f1061027a576101008083540402835291602001916102a5565b820191906000526020600020905b81548152906001019060200180831161028857829003601f168201915b505050505081565b60006102b98389610770565b9050476102c4610758565b6001600160a01b031663b300f752838a8a8a8a6040518663ffffffff1660e01b81526004016102f795949392919061147f565b600060405180830381600087803b15801561031157600080fd5b505af1158015610325573d6000803e3d6000fd5b505050506000610335478361080b565b9050610341848261083d565b8686604051610351929190611123565b604051809103902089896040516103699291906111dd565b60405180910390207fc44585ae385fe053d798d56dc20dc0f0beade803098d105d289637d878fa9c7b8388886040516103a493929190611499565b60405180910390a350505050505050505050565b6103c0610758565b6001600160a01b0316633e75a9a883836040518363ffffffff1660e01b81526004016103ed9291906112b6565b600060405180830381600087803b15801561040757600080fd5b505af115801561041b573d6000803e3d6000fd5b50505050818160405161042f929190611138565b60405180910390207fb42519a7cf5f104a27b62b10dc1e67721be4b68791899606dd15e1b017bd963160008060405161046992919061138a565b60405180910390a25050565b60006104818385610770565b905060001981146104925780610494565b475b905061049e610758565b6001600160a01b0316639aad3798828b8b8b8b8b6040518763ffffffff1660e01b81526004016104d2959493929190611272565b6000604051808303818588803b1580156104eb57600080fd5b505af11580156104ff573d6000803e3d6000fd5b505050505061050e828261083d565b858560405161051e929190611123565b604051809103902088886040516105369291906111dd565b60405180910390208a6001600160a01b03167f1e9ff70996f352b5b70751209e03ae367633703bfc74ccc966b87e70ab57136184878760405161057b93929190611499565b60405180910390a4505050505050505050565b610596610758565b6001600160a01b031663b348e26886868686866040518663ffffffff1660e01b81526004016105c9959493929190611411565b600060405180830381600087803b1580156105e357600080fd5b505af11580156105f7573d6000803e3d6000fd5b5050505081848460405161060c929190611244565b6040518091039020866040516106229190611251565b60405180910390207f9e2ce841f586026d01f4cdb7bcd28c46154ba65e6766033fee248e3690c35a0d60008060405161021092919061138a565b6001907f000000000000000000000000000000000000000000000000000000000000000090565b61068b610758565b6001600160a01b031663ff92b1a88484846040518463ffffffff1660e01b81526004016106ba93929190611446565b600060405180830381600087803b1580156106d457600080fd5b505af11580156106e8573d6000803e3d6000fd5b5050505080826040516106fb9190611266565b6040518091039020846040516107119190611251565b60405180910390207f054a2512b2e1ba381f3ca2abbf5515644385116f44cf8d635382f6df3f41055760008060405161074b92919061138a565b60405180910390a4505050565b73025030bdaa159f281cae63873e68313a703725a590565b60008215610802576107806108af565b6001600160a01b031663a9c70eaa846040518263ffffffff1660e01b81526004016107ab9190611476565b602060405180830381600087803b1580156107c557600080fd5b505af11580156107d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fd9190610af0565b610804565b815b9392505050565b808203828111156108375760405162461bcd60e51b815260040161082e906113eb565b60405180910390fd5b92915050565b81156108ab5761084b6108af565b6001600160a01b03166361e3c94483836040518363ffffffff1660e01b815260040161087892919061138a565b600060405180830381600087803b15801561089257600080fd5b505af11580156108a6573d6000803e3d6000fd5b505050505b5050565b738a5419cfc711b2343c17a6abf4b2bafabb06957f90565b80356001600160a01b03811681146108de57600080fd5b919050565b60008083601f8401126108f4578182fd5b50813567ffffffffffffffff81111561090b578182fd5b602083019150836020808302850101111561092557600080fd5b9250929050565b803580151581146108de57600080fd5b8035600481106108de57600080fd5b600060408284031215610802578081fd5b60008060008060008060008060c0898b031215610977578384fd5b610980896108c7565b9750602089013567ffffffffffffffff8082111561099c578586fd5b6109a88c838d016108e3565b909950975060408b01359150808211156109c0578586fd5b506109cd8b828c016108e3565b999c989b5096999698976060880135976080810135975060a0013595509350505050565b60008060208385031215610a03578182fd5b823567ffffffffffffffff811115610a19578283fd5b610a25858286016108e3565b90969095509350505050565b600080600080600060a08688031215610a48578081fd5b610a52878761094b565b9450604086013567ffffffffffffffff811115610a6d578182fd5b610a79888289016108e3565b9699909850959660608101359660809091013595509350505050565b600080600060808486031215610aa9578283fd5b610ab3858561094b565b9250604084013567ffffffffffffffff811115610ace578283fd5b840160808187031215610adf578283fd5b929592945050506060919091013590565b600060208284031215610b01578081fd5b5051919050565b600080600080600080600060a0888a031215610b22578283fd5b87359650602088013567ffffffffffffffff80821115610b40578485fd5b610b4c8b838c016108e3565b909850965060408a0135915080821115610b64578485fd5b50610b718a828b016108e3565b989b979a5095989597966060870135966080013595509350505050565b6001600160a01b0316815260200190565b1515815260200190565b6000610bb58383610f65565b505060200190565b815260200190565b6001600160a01b03169052565b60008284526020808501945082825b85811015610c0d576001600160a01b03610bfa836108c7565b1687529582019590820190600101610be1565b509495945050505050565b600081815b84811015610c4c576001600160a01b03610c36836108c7565b1686526020958601959190910190600101610c1d565b5093949350505050565b818352602080840193600091908185020181018584845b87811015610d30578284038952610c84828861153c565b60c06001600160a01b03610c97836108c7565b168652610ca6878301836114f7565b8289890152610cb88389018284610f25565b9250505060408083013560028110610cce57898afd5b610cda82890182610f73565b50506060610ce981840161093c565b610cf582890182610f65565b50506080828101359087015260a0610d0e81840161092c565b9250610d1c81880184610f1f565b509986019994505090840190600101610c6d565b5091979650505050505050565b600081815b84811015610c4c57610d54828561153c565b610d6687610d61836108c7565b610b8e565b6020610d74818401846114f7565b610d7f848284610f4f565b93505050604083013560028110610d94578687fd5b610d9e8382610f73565b50606083013560048110610db0578687fd5b610ddd610dcc610dc284860184610ba9565b6080870135610bbd565b610dd860a0870161092c565b610b9f565b99505093909301925050600101610d42565b818352602080840193600091908185020181018584845b87811015610d30578284038952610e1d8288611585565b6060808601610e2c83846114af565b92885290829052608087019189905b80821015610e6257610e5084610d61856108c7565b93508983019250600182019150610e3b565b505050610e71878301836114af565b87830389890152610e83838284610c56565b6040948501359890940197909752505098850198935090840190600101610e06565b818352602080840193600091908185020181018584845b87811015610d30578284038952610edc84610ed7848a61159a565b610faa565b98850198935090840190600101610ebc565b600081815b84811015610c4c57610f0e86610f09848761159a565b611082565b955060209190910190600101610ef3565b15159052565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000828285378383015250601f01601f19160190565b60048110610f6f57fe5b9052565b60028110610f6f57fe5b6001600160a01b0380610f8f836108c7565b16835280610f9f602084016108c7565b166020840152505050565b600060808301610fba83846114af565b608086529182905260209160a08087019084830288010183865b8481101561103a57898303609f19018452610fef828761155a565b60406001600160a01b03611002836108c7565b168552611011898301836114f7565b9250818a8701526110258287018483610f25565b968a0196955050509187019150600101610fd4565b5050611048858801886114af565b945092508781038589015261105e818585610c56565b94505050505060408301356040850152606083013560608501528091505092915050565b600061108e82836114af565b8482845b838110156110e6576110a4828661155a565b6001600160a01b036110b5826108c7565b16845260206110c6818301836114f7565b92506110d58287018483610f4f565b955050929092019150600101611092565b50506110f560208601866114af565b93509150611104818484610d3d565b6040868101358252606090960135602082015290940195945050505050565b6000611130828486610c18565b949350505050565b60008184825b858110156111d257611150828861156f565b803584526020611167818601610d618385016108c7565b604061117582828601610f7d565b60808401359082015261118b60a08401846114af565b6111c16111b66111ac6111a2606087018587610eee565b60c0890135610bbd565b60e0880135610bbd565b610100870135610bbd565b97505050930192505060010161113e565b509095945050505050565b60008184825b858110156111d2576111f58288611585565b6111ff81826114af565b61120a868284610c18565b915050602061121b818401846114af565b611226848284610d3d565b604095909501358552505091820194505091909101906001016111e3565b6000611130828486610eee565b600061125d8284610f7d565b50604001919050565b60006108048284611082565b6001600160a01b03861681526060602082018190526000906112979083018688610def565b82810360408401526112aa818587610bd2565b98975050505050505050565b602080825281810183905260009060408084018583028501820187855b8881101561137c57878303603f190184526112ee828b61156f565b610120813585526113008883016108c7565b61130c89870182610bc5565b5061131b878601888401610f7d565b6080828101359086015260a0611333818401846114af565b83838901526113458489018284610ea5565b60c086810135908a015260e080870135908a01526101009586013595909801949094525050509386019350908501906001016112d3565b509098975050505050505050565b918252602082015260400190565b6000602080835283518082850152825b818110156113c4578581018301518582016040015282016113a8565b818111156113d55783604083870101525b50601f01601f1916929092016040019392505050565b6020808252600c908201526b7375622d6f766572666c6f7760a01b604082015260600190565b600061141d8288610f7d565b60a0604083015261143260a083018688610ea5565b606083019490945250608001529392505050565b60006114528286610f7d565b608060408301526114666080830185610faa565b9050826060830152949350505050565b90815260200190565b600086825260606020830152611297606083018688610def565b9283526020830191909152604082015260600190565b6000808335601e198436030181126114c5578283fd5b830160208101925035905067ffffffffffffffff8111156114e557600080fd5b60208102360383131561092557600080fd5b6000808335601e1984360301811261150d578283fd5b830160208101925035905067ffffffffffffffff81111561152d57600080fd5b80360383131561092557600080fd5b6000823560be19833603018112611551578182fd5b90910192915050565b60008235603e19833603018112611551578182fd5b6000823561011e19833603018112611551578182fd5b60008235605e19833603018112611551578182fd5b60008235607e19833603018112611551578182fdfea2646970667358221220ec2900ea5c007d0cd1ae45d460817c7c5963d323d9378ede5729da1d063eb04264736f6c63430007040033", "deployedBytecode": "0x60806040526004361061007b5760003560e01c80636cd3d8981161004e5780636cd3d898146100e6578063b348e268146100f9578063eb15f7811461010c578063ff92b1a81461012f5761007b565b8063025264901461008057806306fdde03146100955780632738a788146100c05780633e75a9a8146100d3575b600080fd5b61009361008e366004610a31565b610142565b005b3480156100a157600080fd5b506100aa61021f565b6040516100b79190611398565b60405180910390f35b6100936100ce366004610b08565b6102ad565b6100936100e13660046109f1565b6103b8565b6100936100f436600461095c565b610475565b610093610107366004610a31565b61058e565b34801561011857600080fd5b5061012161065c565b6040516100b792919061138a565b61009361013d366004610a95565b610683565b61014a610758565b6001600160a01b0316630252649086868686866040518663ffffffff1660e01b815260040161017d959493929190611411565b600060405180830381600087803b15801561019757600080fd5b505af11580156101ab573d6000803e3d6000fd5b505050508184846040516101c0929190611244565b6040518091039020866040516101d69190611251565b60405180910390207f6e618ca93d8007a3bb048d87cc0e7bf12bddc6ca3e336c153890bc0b6f66e9f660008060405161021092919061138a565b60405180910390a45050505050565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102a55780601f1061027a576101008083540402835291602001916102a5565b820191906000526020600020905b81548152906001019060200180831161028857829003601f168201915b505050505081565b60006102b98389610770565b9050476102c4610758565b6001600160a01b031663b300f752838a8a8a8a6040518663ffffffff1660e01b81526004016102f795949392919061147f565b600060405180830381600087803b15801561031157600080fd5b505af1158015610325573d6000803e3d6000fd5b505050506000610335478361080b565b9050610341848261083d565b8686604051610351929190611123565b604051809103902089896040516103699291906111dd565b60405180910390207fc44585ae385fe053d798d56dc20dc0f0beade803098d105d289637d878fa9c7b8388886040516103a493929190611499565b60405180910390a350505050505050505050565b6103c0610758565b6001600160a01b0316633e75a9a883836040518363ffffffff1660e01b81526004016103ed9291906112b6565b600060405180830381600087803b15801561040757600080fd5b505af115801561041b573d6000803e3d6000fd5b50505050818160405161042f929190611138565b60405180910390207fb42519a7cf5f104a27b62b10dc1e67721be4b68791899606dd15e1b017bd963160008060405161046992919061138a565b60405180910390a25050565b60006104818385610770565b905060001981146104925780610494565b475b905061049e610758565b6001600160a01b0316639aad3798828b8b8b8b8b6040518763ffffffff1660e01b81526004016104d2959493929190611272565b6000604051808303818588803b1580156104eb57600080fd5b505af11580156104ff573d6000803e3d6000fd5b505050505061050e828261083d565b858560405161051e929190611123565b604051809103902088886040516105369291906111dd565b60405180910390208a6001600160a01b03167f1e9ff70996f352b5b70751209e03ae367633703bfc74ccc966b87e70ab57136184878760405161057b93929190611499565b60405180910390a4505050505050505050565b610596610758565b6001600160a01b031663b348e26886868686866040518663ffffffff1660e01b81526004016105c9959493929190611411565b600060405180830381600087803b1580156105e357600080fd5b505af11580156105f7573d6000803e3d6000fd5b5050505081848460405161060c929190611244565b6040518091039020866040516106229190611251565b60405180910390207f9e2ce841f586026d01f4cdb7bcd28c46154ba65e6766033fee248e3690c35a0d60008060405161021092919061138a565b6001907f000000000000000000000000000000000000000000000000000000000000000090565b61068b610758565b6001600160a01b031663ff92b1a88484846040518463ffffffff1660e01b81526004016106ba93929190611446565b600060405180830381600087803b1580156106d457600080fd5b505af11580156106e8573d6000803e3d6000fd5b5050505080826040516106fb9190611266565b6040518091039020846040516107119190611251565b60405180910390207f054a2512b2e1ba381f3ca2abbf5515644385116f44cf8d635382f6df3f41055760008060405161074b92919061138a565b60405180910390a4505050565b73025030bdaa159f281cae63873e68313a703725a590565b60008215610802576107806108af565b6001600160a01b031663a9c70eaa846040518263ffffffff1660e01b81526004016107ab9190611476565b602060405180830381600087803b1580156107c557600080fd5b505af11580156107d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fd9190610af0565b610804565b815b9392505050565b808203828111156108375760405162461bcd60e51b815260040161082e906113eb565b60405180910390fd5b92915050565b81156108ab5761084b6108af565b6001600160a01b03166361e3c94483836040518363ffffffff1660e01b815260040161087892919061138a565b600060405180830381600087803b15801561089257600080fd5b505af11580156108a6573d6000803e3d6000fd5b505050505b5050565b738a5419cfc711b2343c17a6abf4b2bafabb06957f90565b80356001600160a01b03811681146108de57600080fd5b919050565b60008083601f8401126108f4578182fd5b50813567ffffffffffffffff81111561090b578182fd5b602083019150836020808302850101111561092557600080fd5b9250929050565b803580151581146108de57600080fd5b8035600481106108de57600080fd5b600060408284031215610802578081fd5b60008060008060008060008060c0898b031215610977578384fd5b610980896108c7565b9750602089013567ffffffffffffffff8082111561099c578586fd5b6109a88c838d016108e3565b909950975060408b01359150808211156109c0578586fd5b506109cd8b828c016108e3565b999c989b5096999698976060880135976080810135975060a0013595509350505050565b60008060208385031215610a03578182fd5b823567ffffffffffffffff811115610a19578283fd5b610a25858286016108e3565b90969095509350505050565b600080600080600060a08688031215610a48578081fd5b610a52878761094b565b9450604086013567ffffffffffffffff811115610a6d578182fd5b610a79888289016108e3565b9699909850959660608101359660809091013595509350505050565b600080600060808486031215610aa9578283fd5b610ab3858561094b565b9250604084013567ffffffffffffffff811115610ace578283fd5b840160808187031215610adf578283fd5b929592945050506060919091013590565b600060208284031215610b01578081fd5b5051919050565b600080600080600080600060a0888a031215610b22578283fd5b87359650602088013567ffffffffffffffff80821115610b40578485fd5b610b4c8b838c016108e3565b909850965060408a0135915080821115610b64578485fd5b50610b718a828b016108e3565b989b979a5095989597966060870135966080013595509350505050565b6001600160a01b0316815260200190565b1515815260200190565b6000610bb58383610f65565b505060200190565b815260200190565b6001600160a01b03169052565b60008284526020808501945082825b85811015610c0d576001600160a01b03610bfa836108c7565b1687529582019590820190600101610be1565b509495945050505050565b600081815b84811015610c4c576001600160a01b03610c36836108c7565b1686526020958601959190910190600101610c1d565b5093949350505050565b818352602080840193600091908185020181018584845b87811015610d30578284038952610c84828861153c565b60c06001600160a01b03610c97836108c7565b168652610ca6878301836114f7565b8289890152610cb88389018284610f25565b9250505060408083013560028110610cce57898afd5b610cda82890182610f73565b50506060610ce981840161093c565b610cf582890182610f65565b50506080828101359087015260a0610d0e81840161092c565b9250610d1c81880184610f1f565b509986019994505090840190600101610c6d565b5091979650505050505050565b600081815b84811015610c4c57610d54828561153c565b610d6687610d61836108c7565b610b8e565b6020610d74818401846114f7565b610d7f848284610f4f565b93505050604083013560028110610d94578687fd5b610d9e8382610f73565b50606083013560048110610db0578687fd5b610ddd610dcc610dc284860184610ba9565b6080870135610bbd565b610dd860a0870161092c565b610b9f565b99505093909301925050600101610d42565b818352602080840193600091908185020181018584845b87811015610d30578284038952610e1d8288611585565b6060808601610e2c83846114af565b92885290829052608087019189905b80821015610e6257610e5084610d61856108c7565b93508983019250600182019150610e3b565b505050610e71878301836114af565b87830389890152610e83838284610c56565b6040948501359890940197909752505098850198935090840190600101610e06565b818352602080840193600091908185020181018584845b87811015610d30578284038952610edc84610ed7848a61159a565b610faa565b98850198935090840190600101610ebc565b600081815b84811015610c4c57610f0e86610f09848761159a565b611082565b955060209190910190600101610ef3565b15159052565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000828285378383015250601f01601f19160190565b60048110610f6f57fe5b9052565b60028110610f6f57fe5b6001600160a01b0380610f8f836108c7565b16835280610f9f602084016108c7565b166020840152505050565b600060808301610fba83846114af565b608086529182905260209160a08087019084830288010183865b8481101561103a57898303609f19018452610fef828761155a565b60406001600160a01b03611002836108c7565b168552611011898301836114f7565b9250818a8701526110258287018483610f25565b968a0196955050509187019150600101610fd4565b5050611048858801886114af565b945092508781038589015261105e818585610c56565b94505050505060408301356040850152606083013560608501528091505092915050565b600061108e82836114af565b8482845b838110156110e6576110a4828661155a565b6001600160a01b036110b5826108c7565b16845260206110c6818301836114f7565b92506110d58287018483610f4f565b955050929092019150600101611092565b50506110f560208601866114af565b93509150611104818484610d3d565b6040868101358252606090960135602082015290940195945050505050565b6000611130828486610c18565b949350505050565b60008184825b858110156111d257611150828861156f565b803584526020611167818601610d618385016108c7565b604061117582828601610f7d565b60808401359082015261118b60a08401846114af565b6111c16111b66111ac6111a2606087018587610eee565b60c0890135610bbd565b60e0880135610bbd565b610100870135610bbd565b97505050930192505060010161113e565b509095945050505050565b60008184825b858110156111d2576111f58288611585565b6111ff81826114af565b61120a868284610c18565b915050602061121b818401846114af565b611226848284610d3d565b604095909501358552505091820194505091909101906001016111e3565b6000611130828486610eee565b600061125d8284610f7d565b50604001919050565b60006108048284611082565b6001600160a01b03861681526060602082018190526000906112979083018688610def565b82810360408401526112aa818587610bd2565b98975050505050505050565b602080825281810183905260009060408084018583028501820187855b8881101561137c57878303603f190184526112ee828b61156f565b610120813585526113008883016108c7565b61130c89870182610bc5565b5061131b878601888401610f7d565b6080828101359086015260a0611333818401846114af565b83838901526113458489018284610ea5565b60c086810135908a015260e080870135908a01526101009586013595909801949094525050509386019350908501906001016112d3565b509098975050505050505050565b918252602082015260400190565b6000602080835283518082850152825b818110156113c4578581018301518582016040015282016113a8565b818111156113d55783604083870101525b50601f01601f1916929092016040019392505050565b6020808252600c908201526b7375622d6f766572666c6f7760a01b604082015260600190565b600061141d8288610f7d565b60a0604083015261143260a083018688610ea5565b606083019490945250608001529392505050565b60006114528286610f7d565b608060408301526114666080830185610faa565b9050826060830152949350505050565b90815260200190565b600086825260606020830152611297606083018688610def565b9283526020830191909152604082015260600190565b6000808335601e198436030181126114c5578283fd5b830160208101925035905067ffffffffffffffff8111156114e557600080fd5b60208102360383131561092557600080fd5b6000808335601e1984360301811261150d578283fd5b830160208101925035905067ffffffffffffffff81111561152d57600080fd5b80360383131561092557600080fd5b6000823560be19833603018112611551578182fd5b90910192915050565b60008235603e19833603018112611551578182fd5b6000823561011e19833603018112611551578182fd5b60008235605e19833603018112611551578182fd5b60008235607e19833603018112611551578182fdfea2646970667358221220ec2900ea5c007d0cd1ae45d460817c7c5963d323d9378ede5729da1d063eb04264736f6c63430007040033", "devdoc": { "kind": "dev", "methods": { "connectorID()": { "details": "Connector Details" }, "multiCancelTasks((uint256,address,(address,address),uint256,((address,bytes)[],(address,bytes,uint8,uint8,uint256,bool)[],uint256,uint256)[],uint256,uint256,uint256)[])": { "details": "Cancels outstanding Tasks", "params": { "_taskReceipts": "List of Task Receipts to cancel" } }, "multiProvide(address,(address[],(address,bytes,uint8,uint8,uint256,bool)[],uint256)[],address[],uint256,uint256,uint256)": { "details": "Enables first time users to pre-fund eth, whitelist an executor & register the ProviderModuleDSA.sol to be able to use Gelato", "params": { "_ethToDeposit": "amount of eth to deposit on Gelato, only for self-providers", "_executor": "address of single execot node or gelato'S decentralized execution market", "_modules": "address of ProviderModuleDSA", "_taskSpecs": "enables external providers to whitelist TaskSpecs on gelato" } }, "multiUnprovide(uint256,(address[],(address,bytes,uint8,uint8,uint256,bool)[],uint256)[],address[],uint256,uint256)": { "details": "Withdraws funds from Gelato, de-whitelists TaskSpecs and Provider Modules in one tx", "params": { "_modules": "List of Provider Modules to de-whitelist, default empty []", "_taskSpecs": "List of Task Specs to de-whitelist, default empty []", "_withdrawAmount": "Amount of ETH to withdraw from Gelato" } }, "submitTask((address,address),((address,bytes)[],(address,bytes,uint8,uint8,uint256,bool)[],uint256,uint256),uint256)": { "details": "Submits a single, one-time task to Gelato", "params": { "_expiryDate": "Default 0, othweise timestamp after which the task expires", "_provider": "Consists of proxy module address (DSA) and provider address () who will pay for the transaction execution", "_task": "Task specifying the condition and the action connectors" } }, "submitTaskChain((address,address),((address,bytes)[],(address,bytes,uint8,uint8,uint256,bool)[],uint256,uint256)[],uint256,uint256)": { "details": "Submits single or mulitple Task Chains to Gelato", "params": { "_expiryDate": "Default 0, othweise timestamp after which the task expires", "_provider": "Consists of proxy module address (DSA) and provider address () who will pay for the transaction execution", "_sumOfRequestedTaskSubmits": "The TOTAL number of Task auto-submits that should have occured once the cycle is complete", "_tasks": "A sequence of Tasks, can be a single or multiples" } }, "submitTaskCycle((address,address),((address,bytes)[],(address,bytes,uint8,uint8,uint256,bool)[],uint256,uint256)[],uint256,uint256)": { "details": "Submits single or mulitple Task Sequences to Gelato", "params": { "_cycles": "How often the Task List should be executed, e.g. 5 times", "_expiryDate": "Default 0, othweise timestamp after which the task expires", "_provider": "Consists of proxy module address (DSA) and provider address () who will pay for the transaction execution", "_tasks": "A sequence of Tasks, can be a single or multiples" } } }, "version": 1 }, "userdoc": { "kind": "user", "methods": {}, "version": 1 }, "storageLayout": { "storage": [ { "astId": 646, "contract": "contracts/contracts/connectors/ConnectGelato.sol:ConnectGelato", "label": "name", "offset": 0, "slot": "0", "type": "t_string_storage" } ], "types": { "t_string_storage": { "encoding": "bytes", "label": "string", "numberOfBytes": "32" } } } }