{"abi":[{"type":"function","name":"cancelTask","inputs":[{"name":"taskId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createTask","inputs":[{"name":"execAddress","type":"address","internalType":"address"},{"name":"execData","type":"bytes","internalType":"bytes"},{"name":"moduleData","type":"tuple","internalType":"struct LibDataTypes.ModuleData","components":[{"name":"modules","type":"uint8[]","internalType":"enum LibDataTypes.Module[]"},{"name":"args","type":"bytes[]","internalType":"bytes[]"}]},{"name":"feeToken","type":"address","internalType":"address"}],"outputs":[{"name":"taskId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"exec","inputs":[{"name":"taskCreator","type":"address","internalType":"address"},{"name":"execAddress","type":"address","internalType":"address"},{"name":"execData","type":"bytes","internalType":"bytes"},{"name":"moduleData","type":"tuple","internalType":"struct LibDataTypes.ModuleData","components":[{"name":"modules","type":"uint8[]","internalType":"enum LibDataTypes.Module[]"},{"name":"args","type":"bytes[]","internalType":"bytes[]"}]},{"name":"txFee","type":"uint256","internalType":"uint256"},{"name":"feeToken","type":"address","internalType":"address"},{"name":"revertOnFailure","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"exec1Balance","inputs":[{"name":"taskCreator","type":"address","internalType":"address"},{"name":"execAddress","type":"address","internalType":"address"},{"name":"execData","type":"bytes","internalType":"bytes"},{"name":"moduleData","type":"tuple","internalType":"struct LibDataTypes.ModuleData","components":[{"name":"modules","type":"uint8[]","internalType":"enum LibDataTypes.Module[]"},{"name":"args","type":"bytes[]","internalType":"bytes[]"}]},{"name":"oneBalanceParam","type":"tuple","internalType":"struct IGelato1Balance.Gelato1BalanceParam","components":[{"name":"sponsor","type":"address","internalType":"address"},{"name":"feeToken","type":"address","internalType":"address"},{"name":"oneBalanceChainId","type":"uint256","internalType":"uint256"},{"name":"nativeToFeeTokenXRateNumerator","type":"uint256","internalType":"uint256"},{"name":"nativeToFeeTokenXRateDenominator","type":"uint256","internalType":"uint256"},{"name":"correlationId","type":"bytes32","internalType":"bytes32"}]},{"name":"revertOnFailure","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"execBypassModule","inputs":[{"name":"taskCreator","type":"address","internalType":"address"},{"name":"execAddress","type":"address","internalType":"address"},{"name":"taskId","type":"bytes32","internalType":"bytes32"},{"name":"correlationId","type":"bytes32","internalType":"bytes32"},{"name":"execData","type":"bytes","internalType":"bytes"},{"name":"revertOnFailure","type":"bool","internalType":"bool"},{"name":"singleExec","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"execBypassModuleSyncFee","inputs":[{"name":"taskCreator","type":"address","internalType":"address"},{"name":"execAddress","type":"address","internalType":"address"},{"name":"taskId","type":"bytes32","internalType":"bytes32"},{"name":"txFee","type":"uint256","internalType":"uint256"},{"name":"feeToken","type":"address","internalType":"address"},{"name":"execData","type":"bytes","internalType":"bytes"},{"name":"revertOnFailure","type":"bool","internalType":"bool"},{"name":"singleExec","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getFeeDetails","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getTaskId","inputs":[{"name":"taskCreator","type":"address","internalType":"address"},{"name":"execAddress","type":"address","internalType":"address"},{"name":"execSelector","type":"bytes4","internalType":"bytes4"},{"name":"moduleData","type":"tuple","internalType":"struct LibDataTypes.ModuleData","components":[{"name":"modules","type":"uint8[]","internalType":"enum LibDataTypes.Module[]"},{"name":"args","type":"bytes[]","internalType":"bytes[]"}]},{"name":"feeToken","type":"address","internalType":"address"}],"outputs":[{"name":"taskId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"getTaskIdsByUser","inputs":[{"name":"taskCreator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"setModule","inputs":[{"name":"modules","type":"uint8[]","internalType":"enum LibDataTypes.Module[]"},{"name":"moduleAddresses","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"LogUseGelato1Balance","inputs":[{"name":"sponsor","type":"address","indexed":true,"internalType":"address"},{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"feeToken","type":"address","indexed":true,"internalType":"address"},{"name":"oneBalanceChainId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"nativeToFeeTokenXRateNumerator","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"nativeToFeeTokenXRateDenominator","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"correlationId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"cancelTask(bytes32)":"ee8ca3b5","createTask(address,bytes,(uint8[],bytes[]),address)":"3323b467","exec(address,address,bytes,(uint8[],bytes[]),uint256,address,bool)":"e1d173a9","exec1Balance(address,address,bytes,(uint8[],bytes[]),(address,address,uint256,uint256,uint256,bytes32),bool)":"abf26d55","execBypassModule(address,address,bytes32,bytes32,bytes,bool,bool)":"80381407","execBypassModuleSyncFee(address,address,bytes32,uint256,address,bytes,bool,bool)":"30a9fe6a","getFeeDetails()":"b810c636","getTaskId(address,address,bytes4,(uint8[],bytes[]),address)":"3140576e","getTaskIdsByUser(address)":"0407145c","setModule(uint8[],address[])":"813785e6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"feeToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oneBalanceChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nativeToFeeTokenXRateNumerator\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nativeToFeeTokenXRateDenominator\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"correlationId\",\"type\":\"bytes32\"}],\"name\":\"LogUseGelato1Balance\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"taskId\",\"type\":\"bytes32\"}],\"name\":\"cancelTask\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"execAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"execData\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"enum LibDataTypes.Module[]\",\"name\":\"modules\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes[]\",\"name\":\"args\",\"type\":\"bytes[]\"}],\"internalType\":\"struct LibDataTypes.ModuleData\",\"name\":\"moduleData\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"feeToken\",\"type\":\"address\"}],\"name\":\"createTask\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"taskId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"taskCreator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"execAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"execData\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"enum LibDataTypes.Module[]\",\"name\":\"modules\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes[]\",\"name\":\"args\",\"type\":\"bytes[]\"}],\"internalType\":\"struct LibDataTypes.ModuleData\",\"name\":\"moduleData\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"txFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeToken\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revertOnFailure\",\"type\":\"bool\"}],\"name\":\"exec\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"taskCreator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"execAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"execData\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"enum LibDataTypes.Module[]\",\"name\":\"modules\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes[]\",\"name\":\"args\",\"type\":\"bytes[]\"}],\"internalType\":\"struct LibDataTypes.ModuleData\",\"name\":\"moduleData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feeToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"oneBalanceChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeToFeeTokenXRateNumerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeToFeeTokenXRateDenominator\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"correlationId\",\"type\":\"bytes32\"}],\"internalType\":\"struct IGelato1Balance.Gelato1BalanceParam\",\"name\":\"oneBalanceParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"revertOnFailure\",\"type\":\"bool\"}],\"name\":\"exec1Balance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"taskCreator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"execAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"taskId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"correlationId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"execData\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"revertOnFailure\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"singleExec\",\"type\":\"bool\"}],\"name\":\"execBypassModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"taskCreator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"execAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"taskId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"txFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeToken\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"execData\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"revertOnFailure\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"singleExec\",\"type\":\"bool\"}],\"name\":\"execBypassModuleSyncFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFeeDetails\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"taskCreator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"execAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"execSelector\",\"type\":\"bytes4\"},{\"components\":[{\"internalType\":\"enum LibDataTypes.Module[]\",\"name\":\"modules\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes[]\",\"name\":\"args\",\"type\":\"bytes[]\"}],\"internalType\":\"struct LibDataTypes.ModuleData\",\"name\":\"moduleData\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"feeToken\",\"type\":\"address\"}],\"name\":\"getTaskId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"taskId\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"taskCreator\",\"type\":\"address\"}],\"name\":\"getTaskIdsByUser\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum LibDataTypes.Module[]\",\"name\":\"modules\",\"type\":\"uint8[]\"},{\"internalType\":\"address[]\",\"name\":\"moduleAddresses\",\"type\":\"address[]\"}],\"name\":\"setModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"cancelTask(bytes32)\":{\"params\":{\"taskId\":\"Unique hash of the task that is being cancelled. {See LibTaskId-getTaskId}\"}},\"createTask(address,bytes,(uint8[],bytes[]),address)\":{\"params\":{\"execAddress\":\"Address of contract that should be called by Gelato.\",\"execData\":\"Execution data to be called with / function selector if execution data is yet to be determined.\",\"feeToken\":\"Address of token to be used as payment. Use address(0) if Gelato 1Balance is being used, 0xeeeeee... for ETH or native tokens.\",\"moduleData\":\"Conditional modules that will be used. {See LibDataTypes-ModuleData}\"},\"returns\":{\"taskId\":\"Unique hash of the task created.\"}},\"exec(address,address,bytes,(uint8[],bytes[]),uint256,address,bool)\":{\"params\":{\"execAddress\":\"Address of contract that should be called by Gelato.\",\"execData\":\"Execution data to be called with / function selector if execution data is yet to be determined.\",\"feeToken\":\"Token used to pay for the execution. ETH = 0xeeeeee...\",\"moduleData\":\"Conditional modules that will be used. {See LibDataTypes-ModuleData}\",\"revertOnFailure\":\"To revert or not if call to execAddress fails. (Used for off-chain simulations)\",\"taskCreator\":\"The address which created the task.\",\"txFee\":\"Fee paid to Gelato for execution, transfered to Gelato.feeCollector().\"}},\"exec1Balance(address,address,bytes,(uint8[],bytes[]),(address,address,uint256,uint256,uint256,bytes32),bool)\":{\"params\":{\"execAddress\":\"Address of contract that should be called by Gelato.\",\"execData\":\"Execution data to be called with / function selector if execution data is yet to be determined.\",\"moduleData\":\"Conditional modules that will be used. {See LibDataTypes-ModuleData}\",\"oneBalanceParam\":\"Parameters required for fee payment with Gelato 1Balance.\",\"revertOnFailure\":\"To revert or not if call to execAddress fails. (Used for off-chain simulations)\",\"taskCreator\":\"The address which created the task.\"}},\"execBypassModule(address,address,bytes32,bytes32,bytes,bool,bool)\":{\"params\":{\"correlationId\":\"Id of the execution to be used for 1Balance settlement.\",\"execAddress\":\"Address of contract that should be called by Gelato.\",\"execData\":\"Execution data to be called with / function selector if execution data is yet to be determined.\",\"revertOnFailure\":\"To revert or not if call to execAddress fails. (Used for off-chain simulations)\",\"singleExec\":\"If the task is a SingleExec task. If true, task will be cancelled after execution.\",\"taskCreator\":\"The address which created the task.\",\"taskId\":\"Unique hash of the task.\"}},\"execBypassModuleSyncFee(address,address,bytes32,uint256,address,bytes,bool,bool)\":{\"params\":{\"execAddress\":\"Address of contract that should be called by Gelato.\",\"execData\":\"Execution data to be called with / function selector if execution data is yet to be determined.\",\"feeToken\":\"Token used to pay for the execution. ETH = 0xeeeeee...\",\"revertOnFailure\":\"To revert or not if call to execAddress fails. (Used for off-chain simulations)\",\"singleExec\":\"If the task is a SingleExec task. If true, task will be cancelled after execution.\",\"taskCreator\":\"The address which created the task.\",\"taskId\":\"Unique hash of the task.\",\"txFee\":\"Fee paid to Gelato for execution, transfered to Gelato.feeCollector().\"}},\"getFeeDetails()\":{\"returns\":{\"_0\":\"uint256 Fee amount to be paid.\",\"_1\":\"address Token to be paid. (Determined and passed by taskCreator during createTask)\"}},\"getTaskId(address,address,bytes4,(uint8[],bytes[]),address)\":{\"params\":{\"execAddress\":\"Address of contract that will be called by Gelato.\",\"execSelector\":\"Signature of the function which will be called by Gelato.\",\"feeToken\":\"Address of token to be used as payment. Use address(0) if Gelato 1Balance is being used, 0xeeeeee... for ETH or native tokens.\",\"moduleData\":\"Conditional modules that will be used. {See LibDataTypes-ModuleData}\",\"taskCreator\":\"The address which created the task.\"}},\"getTaskIdsByUser(address)\":{\"params\":{\"taskCreator\":\"Address of task creator to query.\"},\"returns\":{\"_0\":\"bytes32[] List of taskIds created.\"}},\"setModule(uint8[],address[])\":{\"params\":{\"moduleAddresses\":\"List of addresses for respective modules.\",\"modules\":\"List of modules to be set\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"cancelTask(bytes32)\":{\"notice\":\"Terminates a task that was created and Gelato can no longer execute it.\"},\"createTask(address,bytes,(uint8[],bytes[]),address)\":{\"notice\":\"Initiates a task with conditions which Gelato will monitor and execute when conditions are met.\"},\"exec(address,address,bytes,(uint8[],bytes[]),uint256,address,bool)\":{\"notice\":\"Execution API called by Gelato, using Sync Fee as fee payment method\"},\"exec1Balance(address,address,bytes,(uint8[],bytes[]),(address,address,uint256,uint256,uint256,bytes32),bool)\":{\"notice\":\"Execution API called by Gelato, using Gelato 1Balance as fee payment method.\"},\"execBypassModule(address,address,bytes32,bytes32,bytes,bool,bool)\":{\"notice\":\"Execution API called by Gelato, using Gelato 1Balance as fee payment method.\"},\"execBypassModuleSyncFee(address,address,bytes32,uint256,address,bytes,bool,bool)\":{\"notice\":\"Execution API called by Gelato, using Gelato Sync fee as fee payment method.\"},\"getFeeDetails()\":{\"notice\":\"Helper function to query fee and feeToken to be used for payment. (For executions which pays itself)\"},\"getTaskId(address,address,bytes4,(uint8[],bytes[]),address)\":{\"notice\":\"Helper function to compute task id with module arguments\"},\"getTaskIdsByUser(address)\":{\"notice\":\"Helper func to query all open tasks by a task creator.\"},\"setModule(uint8[],address[])\":{\"notice\":\"Sets the address of task modules. Only callable by proxy admin.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/automate/contracts/interfaces/IAutomate.sol\":\"IAutomate\"},\"evmVersion\":\"london\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/automate/contracts/interfaces/IAutomate.sol\":{\"keccak256\":\"0x3b8418bf4df5b5b4fa137b34f857e8d088f785d41f6c7e1e86bf64b6bb3df323\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6fb41e0e3235cda8670d18cf444a15ecdfbc25897598133413654a3e833658b\",\"dweb:/ipfs/QmfHme3rq3JzpgJ2TtDtAP2eqXi3Tttg5Wq2BinmrpvLsg\"]},\"lib/automate/contracts/interfaces/IGelato1Balance.sol\":{\"keccak256\":\"0xbe0b342ff2bd982b3461f95d6410b0c385f883a5e6b9ba8ed9fb4e11da0d3dee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://367686a37502aa91683a883ae7bd94a68defdb82341dfc5e0251c4b5071ef34d\",\"dweb:/ipfs/QmWAH4Me6YszGrdsmPFLWxpTX1z2LMcYT8nHjxVKN7uTey\"]},\"lib/automate/contracts/libraries/LibDataTypes.sol\":{\"keccak256\":\"0x7307461a03c5bb31eef8b01b029fd898d45a495349498466c6238a6474c4edc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8e5eca0478c8791dbbbfbf552500f8f0bcc4ed2a2cc25e340f4a89aa5b8c494\",\"dweb:/ipfs/QmWjxFPFEQ7sSxws31S5hNNoUDiPJCZFFxWeTsXMyn2xA8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sponsor","type":"address","indexed":true},{"internalType":"address","name":"target","type":"address","indexed":true},{"internalType":"address","name":"feeToken","type":"address","indexed":true},{"internalType":"uint256","name":"oneBalanceChainId","type":"uint256","indexed":false},{"internalType":"uint256","name":"nativeToFeeTokenXRateNumerator","type":"uint256","indexed":false},{"internalType":"uint256","name":"nativeToFeeTokenXRateDenominator","type":"uint256","indexed":false},{"internalType":"bytes32","name":"correlationId","type":"bytes32","indexed":false}],"type":"event","name":"LogUseGelato1Balance","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"taskId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"cancelTask"},{"inputs":[{"internalType":"address","name":"execAddress","type":"address"},{"internalType":"bytes","name":"execData","type":"bytes"},{"internalType":"struct LibDataTypes.ModuleData","name":"moduleData","type":"tuple","components":[{"internalType":"enum LibDataTypes.Module[]","name":"modules","type":"uint8[]"},{"internalType":"bytes[]","name":"args","type":"bytes[]"}]},{"internalType":"address","name":"feeToken","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createTask","outputs":[{"internalType":"bytes32","name":"taskId","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"taskCreator","type":"address"},{"internalType":"address","name":"execAddress","type":"address"},{"internalType":"bytes","name":"execData","type":"bytes"},{"internalType":"struct LibDataTypes.ModuleData","name":"moduleData","type":"tuple","components":[{"internalType":"enum LibDataTypes.Module[]","name":"modules","type":"uint8[]"},{"internalType":"bytes[]","name":"args","type":"bytes[]"}]},{"internalType":"uint256","name":"txFee","type":"uint256"},{"internalType":"address","name":"feeToken","type":"address"},{"internalType":"bool","name":"revertOnFailure","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"exec"},{"inputs":[{"internalType":"address","name":"taskCreator","type":"address"},{"internalType":"address","name":"execAddress","type":"address"},{"internalType":"bytes","name":"execData","type":"bytes"},{"internalType":"struct LibDataTypes.ModuleData","name":"moduleData","type":"tuple","components":[{"internalType":"enum LibDataTypes.Module[]","name":"modules","type":"uint8[]"},{"internalType":"bytes[]","name":"args","type":"bytes[]"}]},{"internalType":"struct IGelato1Balance.Gelato1BalanceParam","name":"oneBalanceParam","type":"tuple","components":[{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"address","name":"feeToken","type":"address"},{"internalType":"uint256","name":"oneBalanceChainId","type":"uint256"},{"internalType":"uint256","name":"nativeToFeeTokenXRateNumerator","type":"uint256"},{"internalType":"uint256","name":"nativeToFeeTokenXRateDenominator","type":"uint256"},{"internalType":"bytes32","name":"correlationId","type":"bytes32"}]},{"internalType":"bool","name":"revertOnFailure","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"exec1Balance"},{"inputs":[{"internalType":"address","name":"taskCreator","type":"address"},{"internalType":"address","name":"execAddress","type":"address"},{"internalType":"bytes32","name":"taskId","type":"bytes32"},{"internalType":"bytes32","name":"correlationId","type":"bytes32"},{"internalType":"bytes","name":"execData","type":"bytes"},{"internalType":"bool","name":"revertOnFailure","type":"bool"},{"internalType":"bool","name":"singleExec","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"execBypassModule"},{"inputs":[{"internalType":"address","name":"taskCreator","type":"address"},{"internalType":"address","name":"execAddress","type":"address"},{"internalType":"bytes32","name":"taskId","type":"bytes32"},{"internalType":"uint256","name":"txFee","type":"uint256"},{"internalType":"address","name":"feeToken","type":"address"},{"internalType":"bytes","name":"execData","type":"bytes"},{"internalType":"bool","name":"revertOnFailure","type":"bool"},{"internalType":"bool","name":"singleExec","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"execBypassModuleSyncFee"},{"inputs":[],"stateMutability":"view","type":"function","name":"getFeeDetails","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"taskCreator","type":"address"},{"internalType":"address","name":"execAddress","type":"address"},{"internalType":"bytes4","name":"execSelector","type":"bytes4"},{"internalType":"struct LibDataTypes.ModuleData","name":"moduleData","type":"tuple","components":[{"internalType":"enum LibDataTypes.Module[]","name":"modules","type":"uint8[]"},{"internalType":"bytes[]","name":"args","type":"bytes[]"}]},{"internalType":"address","name":"feeToken","type":"address"}],"stateMutability":"pure","type":"function","name":"getTaskId","outputs":[{"internalType":"bytes32","name":"taskId","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"taskCreator","type":"address"}],"stateMutability":"view","type":"function","name":"getTaskIdsByUser","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"enum LibDataTypes.Module[]","name":"modules","type":"uint8[]"},{"internalType":"address[]","name":"moduleAddresses","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"setModule"}],"devdoc":{"kind":"dev","methods":{"cancelTask(bytes32)":{"params":{"taskId":"Unique hash of the task that is being cancelled. {See LibTaskId-getTaskId}"}},"createTask(address,bytes,(uint8[],bytes[]),address)":{"params":{"execAddress":"Address of contract that should be called by Gelato.","execData":"Execution data to be called with / function selector if execution data is yet to be determined.","feeToken":"Address of token to be used as payment. Use address(0) if Gelato 1Balance is being used, 0xeeeeee... for ETH or native tokens.","moduleData":"Conditional modules that will be used. {See LibDataTypes-ModuleData}"},"returns":{"taskId":"Unique hash of the task created."}},"exec(address,address,bytes,(uint8[],bytes[]),uint256,address,bool)":{"params":{"execAddress":"Address of contract that should be called by Gelato.","execData":"Execution data to be called with / function selector if execution data is yet to be determined.","feeToken":"Token used to pay for the execution. ETH = 0xeeeeee...","moduleData":"Conditional modules that will be used. {See LibDataTypes-ModuleData}","revertOnFailure":"To revert or not if call to execAddress fails. (Used for off-chain simulations)","taskCreator":"The address which created the task.","txFee":"Fee paid to Gelato for execution, transfered to Gelato.feeCollector()."}},"exec1Balance(address,address,bytes,(uint8[],bytes[]),(address,address,uint256,uint256,uint256,bytes32),bool)":{"params":{"execAddress":"Address of contract that should be called by Gelato.","execData":"Execution data to be called with / function selector if execution data is yet to be determined.","moduleData":"Conditional modules that will be used. {See LibDataTypes-ModuleData}","oneBalanceParam":"Parameters required for fee payment with Gelato 1Balance.","revertOnFailure":"To revert or not if call to execAddress fails. (Used for off-chain simulations)","taskCreator":"The address which created the task."}},"execBypassModule(address,address,bytes32,bytes32,bytes,bool,bool)":{"params":{"correlationId":"Id of the execution to be used for 1Balance settlement.","execAddress":"Address of contract that should be called by Gelato.","execData":"Execution data to be called with / function selector if execution data is yet to be determined.","revertOnFailure":"To revert or not if call to execAddress fails. (Used for off-chain simulations)","singleExec":"If the task is a SingleExec task. If true, task will be cancelled after execution.","taskCreator":"The address which created the task.","taskId":"Unique hash of the task."}},"execBypassModuleSyncFee(address,address,bytes32,uint256,address,bytes,bool,bool)":{"params":{"execAddress":"Address of contract that should be called by Gelato.","execData":"Execution data to be called with / function selector if execution data is yet to be determined.","feeToken":"Token used to pay for the execution. ETH = 0xeeeeee...","revertOnFailure":"To revert or not if call to execAddress fails. (Used for off-chain simulations)","singleExec":"If the task is a SingleExec task. If true, task will be cancelled after execution.","taskCreator":"The address which created the task.","taskId":"Unique hash of the task.","txFee":"Fee paid to Gelato for execution, transfered to Gelato.feeCollector()."}},"getFeeDetails()":{"returns":{"_0":"uint256 Fee amount to be paid.","_1":"address Token to be paid. (Determined and passed by taskCreator during createTask)"}},"getTaskId(address,address,bytes4,(uint8[],bytes[]),address)":{"params":{"execAddress":"Address of contract that will be called by Gelato.","execSelector":"Signature of the function which will be called by Gelato.","feeToken":"Address of token to be used as payment. Use address(0) if Gelato 1Balance is being used, 0xeeeeee... for ETH or native tokens.","moduleData":"Conditional modules that will be used. {See LibDataTypes-ModuleData}","taskCreator":"The address which created the task."}},"getTaskIdsByUser(address)":{"params":{"taskCreator":"Address of task creator to query."},"returns":{"_0":"bytes32[] List of taskIds created."}},"setModule(uint8[],address[])":{"params":{"moduleAddresses":"List of addresses for respective modules.","modules":"List of modules to be set"}}},"version":1},"userdoc":{"kind":"user","methods":{"cancelTask(bytes32)":{"notice":"Terminates a task that was created and Gelato can no longer execute it."},"createTask(address,bytes,(uint8[],bytes[]),address)":{"notice":"Initiates a task with conditions which Gelato will monitor and execute when conditions are met."},"exec(address,address,bytes,(uint8[],bytes[]),uint256,address,bool)":{"notice":"Execution API called by Gelato, using Sync Fee as fee payment method"},"exec1Balance(address,address,bytes,(uint8[],bytes[]),(address,address,uint256,uint256,uint256,bytes32),bool)":{"notice":"Execution API called by Gelato, using Gelato 1Balance as fee payment method."},"execBypassModule(address,address,bytes32,bytes32,bytes,bool,bool)":{"notice":"Execution API called by Gelato, using Gelato 1Balance as fee payment method."},"execBypassModuleSyncFee(address,address,bytes32,uint256,address,bytes,bool,bool)":{"notice":"Execution API called by Gelato, using Gelato Sync fee as fee payment method."},"getFeeDetails()":{"notice":"Helper function to query fee and feeToken to be used for payment. (For executions which pays itself)"},"getTaskId(address,address,bytes4,(uint8[],bytes[]),address)":{"notice":"Helper function to compute task id with module arguments"},"getTaskIdsByUser(address)":{"notice":"Helper func to query all open tasks by a task creator."},"setModule(uint8[],address[])":{"notice":"Sets the address of task modules. Only callable by proxy admin."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/automate/contracts/interfaces/IAutomate.sol":"IAutomate"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/automate/contracts/interfaces/IAutomate.sol":{"keccak256":"0x3b8418bf4df5b5b4fa137b34f857e8d088f785d41f6c7e1e86bf64b6bb3df323","urls":["bzz-raw://a6fb41e0e3235cda8670d18cf444a15ecdfbc25897598133413654a3e833658b","dweb:/ipfs/QmfHme3rq3JzpgJ2TtDtAP2eqXi3Tttg5Wq2BinmrpvLsg"],"license":"MIT"},"lib/automate/contracts/interfaces/IGelato1Balance.sol":{"keccak256":"0xbe0b342ff2bd982b3461f95d6410b0c385f883a5e6b9ba8ed9fb4e11da0d3dee","urls":["bzz-raw://367686a37502aa91683a883ae7bd94a68defdb82341dfc5e0251c4b5071ef34d","dweb:/ipfs/QmWAH4Me6YszGrdsmPFLWxpTX1z2LMcYT8nHjxVKN7uTey"],"license":"MIT"},"lib/automate/contracts/libraries/LibDataTypes.sol":{"keccak256":"0x7307461a03c5bb31eef8b01b029fd898d45a495349498466c6238a6474c4edc2","urls":["bzz-raw://a8e5eca0478c8791dbbbfbf552500f8f0bcc4ed2a2cc25e340f4a89aa5b8c494","dweb:/ipfs/QmWjxFPFEQ7sSxws31S5hNNoUDiPJCZFFxWeTsXMyn2xA8"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"cancelTask(bytes32)":{"notice":"Terminates a task that was created and Gelato can no longer execute it."},"createTask(address,bytes,(uint8[],bytes[]),address)":{"notice":"Initiates a task with conditions which Gelato will monitor and execute when conditions are met."},"exec(address,address,bytes,(uint8[],bytes[]),uint256,address,bool)":{"notice":"Execution API called by Gelato, using Sync Fee as fee payment method"},"exec1Balance(address,address,bytes,(uint8[],bytes[]),(address,address,uint256,uint256,uint256,bytes32),bool)":{"notice":"Execution API called by Gelato, using Gelato 1Balance as fee payment method."},"execBypassModule(address,address,bytes32,bytes32,bytes,bool,bool)":{"notice":"Execution API called by Gelato, using Gelato 1Balance as fee payment method."},"execBypassModuleSyncFee(address,address,bytes32,uint256,address,bytes,bool,bool)":{"notice":"Execution API called by Gelato, using Gelato Sync fee as fee payment method."},"getFeeDetails()":{"notice":"Helper function to query fee and feeToken to be used for payment. (For executions which pays itself)"},"getTaskId(address,address,bytes4,(uint8[],bytes[]),address)":{"notice":"Helper function to compute task id with module arguments"},"getTaskIdsByUser(address)":{"notice":"Helper func to query all open tasks by a task creator."},"setModule(uint8[],address[])":{"notice":"Sets the address of task modules. Only callable by proxy admin."}}},"devdoc":{"version":1,"kind":"dev","methods":{"cancelTask(bytes32)":{"params":{"taskId":"Unique hash of the task that is being cancelled. {See LibTaskId-getTaskId}"}},"createTask(address,bytes,(uint8[],bytes[]),address)":{"params":{"execAddress":"Address of contract that should be called by Gelato.","execData":"Execution data to be called with / function selector if execution data is yet to be determined.","feeToken":"Address of token to be used as payment. Use address(0) if Gelato 1Balance is being used, 0xeeeeee... for ETH or native tokens.","moduleData":"Conditional modules that will be used. {See LibDataTypes-ModuleData}"},"returns":{"taskId":"Unique hash of the task created."}},"exec(address,address,bytes,(uint8[],bytes[]),uint256,address,bool)":{"params":{"execAddress":"Address of contract that should be called by Gelato.","execData":"Execution data to be called with / function selector if execution data is yet to be determined.","feeToken":"Token used to pay for the execution. ETH = 0xeeeeee...","moduleData":"Conditional modules that will be used. {See LibDataTypes-ModuleData}","revertOnFailure":"To revert or not if call to execAddress fails. (Used for off-chain simulations)","taskCreator":"The address which created the task.","txFee":"Fee paid to Gelato for execution, transfered to Gelato.feeCollector()."}},"exec1Balance(address,address,bytes,(uint8[],bytes[]),(address,address,uint256,uint256,uint256,bytes32),bool)":{"params":{"execAddress":"Address of contract that should be called by Gelato.","execData":"Execution data to be called with / function selector if execution data is yet to be determined.","moduleData":"Conditional modules that will be used. {See LibDataTypes-ModuleData}","oneBalanceParam":"Parameters required for fee payment with Gelato 1Balance.","revertOnFailure":"To revert or not if call to execAddress fails. (Used for off-chain simulations)","taskCreator":"The address which created the task."}},"execBypassModule(address,address,bytes32,bytes32,bytes,bool,bool)":{"params":{"correlationId":"Id of the execution to be used for 1Balance settlement.","execAddress":"Address of contract that should be called by Gelato.","execData":"Execution data to be called with / function selector if execution data is yet to be determined.","revertOnFailure":"To revert or not if call to execAddress fails. (Used for off-chain simulations)","singleExec":"If the task is a SingleExec task. If true, task will be cancelled after execution.","taskCreator":"The address which created the task.","taskId":"Unique hash of the task."}},"execBypassModuleSyncFee(address,address,bytes32,uint256,address,bytes,bool,bool)":{"params":{"execAddress":"Address of contract that should be called by Gelato.","execData":"Execution data to be called with / function selector if execution data is yet to be determined.","feeToken":"Token used to pay for the execution. ETH = 0xeeeeee...","revertOnFailure":"To revert or not if call to execAddress fails. (Used for off-chain simulations)","singleExec":"If the task is a SingleExec task. If true, task will be cancelled after execution.","taskCreator":"The address which created the task.","taskId":"Unique hash of the task.","txFee":"Fee paid to Gelato for execution, transfered to Gelato.feeCollector()."}},"getFeeDetails()":{"returns":{"_0":"uint256 Fee amount to be paid.","_1":"address Token to be paid. (Determined and passed by taskCreator during createTask)"}},"getTaskId(address,address,bytes4,(uint8[],bytes[]),address)":{"params":{"execAddress":"Address of contract that will be called by Gelato.","execSelector":"Signature of the function which will be called by Gelato.","feeToken":"Address of token to be used as payment. Use address(0) if Gelato 1Balance is being used, 0xeeeeee... for ETH or native tokens.","moduleData":"Conditional modules that will be used. {See LibDataTypes-ModuleData}","taskCreator":"The address which created the task."}},"getTaskIdsByUser(address)":{"params":{"taskCreator":"Address of task creator to query."},"returns":{"_0":"bytes32[] List of taskIds created."}},"setModule(uint8[],address[])":{"params":{"moduleAddresses":"List of addresses for respective modules.","modules":"List of modules to be set"}}}},"ast":{"absolutePath":"lib/automate/contracts/interfaces/IAutomate.sol","id":150,"exportedSymbols":{"IAutomate":[149],"IGelato1Balance":[181],"LibDataTypes":[215]},"nodeType":"SourceUnit","src":"32:7134:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"32:23:0","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":3,"nodeType":"ImportDirective","src":"56:59:0","nodes":[],"absolutePath":"lib/automate/contracts/libraries/LibDataTypes.sol","file":"../libraries/LibDataTypes.sol","nameLocation":"-1:-1:-1","scope":150,"sourceUnit":216,"symbolAliases":[{"foreign":{"id":2,"name":"LibDataTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":215,"src":"64:12:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5,"nodeType":"ImportDirective","src":"116:54:0","nodes":[],"absolutePath":"lib/automate/contracts/interfaces/IGelato1Balance.sol","file":"./IGelato1Balance.sol","nameLocation":"-1:-1:-1","scope":150,"sourceUnit":182,"symbolAliases":[{"foreign":{"id":4,"name":"IGelato1Balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":181,"src":"124:15:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":149,"nodeType":"ContractDefinition","src":"207:6958:0","nodes":[{"id":22,"nodeType":"FunctionDefinition","src":"890:201:0","nodes":[],"documentation":{"id":8,"nodeType":"StructuredDocumentation","src":"252:633:0","text":" @notice Initiates a task with conditions which Gelato will monitor and execute when conditions are met.\n @param execAddress Address of contract that should be called by Gelato.\n @param execData Execution data to be called with / function selector if execution data is yet to be determined.\n @param moduleData Conditional modules that will be used. {See LibDataTypes-ModuleData}\n @param feeToken Address of token to be used as payment. Use address(0) if Gelato 1Balance is being used, 0xeeeeee... for ETH or native tokens.\n @return taskId Unique hash of the task created."},"functionSelector":"3323b467","implemented":false,"kind":"function","modifiers":[],"name":"createTask","nameLocation":"899:10:0","parameters":{"id":18,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10,"mutability":"mutable","name":"execAddress","nameLocation":"927:11:0","nodeType":"VariableDeclaration","scope":22,"src":"919:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9,"name":"address","nodeType":"ElementaryTypeName","src":"919:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12,"mutability":"mutable","name":"execData","nameLocation":"963:8:0","nodeType":"VariableDeclaration","scope":22,"src":"948:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11,"name":"bytes","nodeType":"ElementaryTypeName","src":"948:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15,"mutability":"mutable","name":"moduleData","nameLocation":"1014:10:0","nodeType":"VariableDeclaration","scope":22,"src":"981:43:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ModuleData_$198_calldata_ptr","typeString":"struct LibDataTypes.ModuleData"},"typeName":{"id":14,"nodeType":"UserDefinedTypeName","pathNode":{"id":13,"name":"LibDataTypes.ModuleData","nodeType":"IdentifierPath","referencedDeclaration":198,"src":"981:23:0"},"referencedDeclaration":198,"src":"981:23:0","typeDescriptions":{"typeIdentifier":"t_struct$_ModuleData_$198_storage_ptr","typeString":"struct LibDataTypes.ModuleData"}},"visibility":"internal"},{"constant":false,"id":17,"mutability":"mutable","name":"feeToken","nameLocation":"1042:8:0","nodeType":"VariableDeclaration","scope":22,"src":"1034:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16,"name":"address","nodeType":"ElementaryTypeName","src":"1034:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"909:147:0"},"returnParameters":{"id":21,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20,"mutability":"mutable","name":"taskId","nameLocation":"1083:6:0","nodeType":"VariableDeclaration","scope":22,"src":"1075:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1075:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1074:16:0"},"scope":149,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":28,"nodeType":"FunctionDefinition","src":"1303:45:0","nodes":[],"documentation":{"id":23,"nodeType":"StructuredDocumentation","src":"1097:201:0","text":" @notice Terminates a task that was created and Gelato can no longer execute it.\n @param taskId Unique hash of the task that is being cancelled. {See LibTaskId-getTaskId}"},"functionSelector":"ee8ca3b5","implemented":false,"kind":"function","modifiers":[],"name":"cancelTask","nameLocation":"1312:10:0","parameters":{"id":26,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25,"mutability":"mutable","name":"taskId","nameLocation":"1331:6:0","nodeType":"VariableDeclaration","scope":28,"src":"1323:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1323:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1322:16:0"},"returnParameters":{"id":27,"nodeType":"ParameterList","parameters":[],"src":"1347:0:0"},"scope":149,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":47,"nodeType":"FunctionDefinition","src":"2094:250:0","nodes":[],"documentation":{"id":29,"nodeType":"StructuredDocumentation","src":"1354:735:0","text":" @notice Execution API called by Gelato, using Sync Fee as fee payment method\n @param taskCreator The address which created the task.\n @param execAddress Address of contract that should be called by Gelato.\n @param execData Execution data to be called with / function selector if execution data is yet to be determined.\n @param moduleData Conditional modules that will be used. {See LibDataTypes-ModuleData}\n @param txFee Fee paid to Gelato for execution, transfered to Gelato.feeCollector().\n @param feeToken Token used to pay for the execution. ETH = 0xeeeeee...\n @param revertOnFailure To revert or not if call to execAddress fails. (Used for off-chain simulations)"},"functionSelector":"e1d173a9","implemented":false,"kind":"function","modifiers":[],"name":"exec","nameLocation":"2103:4:0","parameters":{"id":45,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31,"mutability":"mutable","name":"taskCreator","nameLocation":"2125:11:0","nodeType":"VariableDeclaration","scope":47,"src":"2117:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30,"name":"address","nodeType":"ElementaryTypeName","src":"2117:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33,"mutability":"mutable","name":"execAddress","nameLocation":"2154:11:0","nodeType":"VariableDeclaration","scope":47,"src":"2146:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32,"name":"address","nodeType":"ElementaryTypeName","src":"2146:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35,"mutability":"mutable","name":"execData","nameLocation":"2188:8:0","nodeType":"VariableDeclaration","scope":47,"src":"2175:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":34,"name":"bytes","nodeType":"ElementaryTypeName","src":"2175:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":38,"mutability":"mutable","name":"moduleData","nameLocation":"2239:10:0","nodeType":"VariableDeclaration","scope":47,"src":"2206:43:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ModuleData_$198_calldata_ptr","typeString":"struct LibDataTypes.ModuleData"},"typeName":{"id":37,"nodeType":"UserDefinedTypeName","pathNode":{"id":36,"name":"LibDataTypes.ModuleData","nodeType":"IdentifierPath","referencedDeclaration":198,"src":"2206:23:0"},"referencedDeclaration":198,"src":"2206:23:0","typeDescriptions":{"typeIdentifier":"t_struct$_ModuleData_$198_storage_ptr","typeString":"struct LibDataTypes.ModuleData"}},"visibility":"internal"},{"constant":false,"id":40,"mutability":"mutable","name":"txFee","nameLocation":"2267:5:0","nodeType":"VariableDeclaration","scope":47,"src":"2259:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39,"name":"uint256","nodeType":"ElementaryTypeName","src":"2259:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42,"mutability":"mutable","name":"feeToken","nameLocation":"2290:8:0","nodeType":"VariableDeclaration","scope":47,"src":"2282:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41,"name":"address","nodeType":"ElementaryTypeName","src":"2282:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44,"mutability":"mutable","name":"revertOnFailure","nameLocation":"2313:15:0","nodeType":"VariableDeclaration","scope":47,"src":"2308:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43,"name":"bool","nodeType":"ElementaryTypeName","src":"2308:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2107:227:0"},"returnParameters":{"id":46,"nodeType":"ParameterList","parameters":[],"src":"2343:0:0"},"scope":149,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":65,"nodeType":"FunctionDefinition","src":"3017:263:0","nodes":[],"documentation":{"id":48,"nodeType":"StructuredDocumentation","src":"2350:662:0","text":" @notice Execution API called by Gelato, using Gelato 1Balance as fee payment method.\n @param taskCreator The address which created the task.\n @param execAddress Address of contract that should be called by Gelato.\n @param execData Execution data to be called with / function selector if execution data is yet to be determined.\n @param moduleData Conditional modules that will be used. {See LibDataTypes-ModuleData}\n @param oneBalanceParam Parameters required for fee payment with Gelato 1Balance.\n @param revertOnFailure To revert or not if call to execAddress fails. (Used for off-chain simulations)"},"functionSelector":"abf26d55","implemented":false,"kind":"function","modifiers":[],"name":"exec1Balance","nameLocation":"3026:12:0","parameters":{"id":63,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50,"mutability":"mutable","name":"taskCreator","nameLocation":"3056:11:0","nodeType":"VariableDeclaration","scope":65,"src":"3048:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49,"name":"address","nodeType":"ElementaryTypeName","src":"3048:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52,"mutability":"mutable","name":"execAddress","nameLocation":"3085:11:0","nodeType":"VariableDeclaration","scope":65,"src":"3077:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51,"name":"address","nodeType":"ElementaryTypeName","src":"3077:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54,"mutability":"mutable","name":"execData","nameLocation":"3119:8:0","nodeType":"VariableDeclaration","scope":65,"src":"3106:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":53,"name":"bytes","nodeType":"ElementaryTypeName","src":"3106:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":57,"mutability":"mutable","name":"moduleData","nameLocation":"3170:10:0","nodeType":"VariableDeclaration","scope":65,"src":"3137:43:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ModuleData_$198_calldata_ptr","typeString":"struct LibDataTypes.ModuleData"},"typeName":{"id":56,"nodeType":"UserDefinedTypeName","pathNode":{"id":55,"name":"LibDataTypes.ModuleData","nodeType":"IdentifierPath","referencedDeclaration":198,"src":"3137:23:0"},"referencedDeclaration":198,"src":"3137:23:0","typeDescriptions":{"typeIdentifier":"t_struct$_ModuleData_$198_storage_ptr","typeString":"struct LibDataTypes.ModuleData"}},"visibility":"internal"},{"constant":false,"id":60,"mutability":"mutable","name":"oneBalanceParam","nameLocation":"3219:15:0","nodeType":"VariableDeclaration","scope":65,"src":"3190:44:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Gelato1BalanceParam_$164_calldata_ptr","typeString":"struct IGelato1Balance.Gelato1BalanceParam"},"typeName":{"id":59,"nodeType":"UserDefinedTypeName","pathNode":{"id":58,"name":"Gelato1BalanceParam","nodeType":"IdentifierPath","referencedDeclaration":164,"src":"3190:19:0"},"referencedDeclaration":164,"src":"3190:19:0","typeDescriptions":{"typeIdentifier":"t_struct$_Gelato1BalanceParam_$164_storage_ptr","typeString":"struct IGelato1Balance.Gelato1BalanceParam"}},"visibility":"internal"},{"constant":false,"id":62,"mutability":"mutable","name":"revertOnFailure","nameLocation":"3249:15:0","nodeType":"VariableDeclaration","scope":65,"src":"3244:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":61,"name":"bool","nodeType":"ElementaryTypeName","src":"3244:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3038:232:0"},"returnParameters":{"id":64,"nodeType":"ParameterList","parameters":[],"src":"3279:0:0"},"scope":149,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83,"nodeType":"FunctionDefinition","src":"4009:240:0","nodes":[],"documentation":{"id":66,"nodeType":"StructuredDocumentation","src":"3286:718:0","text":" @notice Execution API called by Gelato, using Gelato 1Balance as fee payment method.\n @param taskCreator The address which created the task.\n @param execAddress Address of contract that should be called by Gelato.\n @param taskId Unique hash of the task.\n @param correlationId Id of the execution to be used for 1Balance settlement.\n @param execData Execution data to be called with / function selector if execution data is yet to be determined.\n @param revertOnFailure To revert or not if call to execAddress fails. (Used for off-chain simulations)\n @param singleExec If the task is a SingleExec task. If true, task will be cancelled after execution."},"functionSelector":"80381407","implemented":false,"kind":"function","modifiers":[],"name":"execBypassModule","nameLocation":"4018:16:0","parameters":{"id":81,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68,"mutability":"mutable","name":"taskCreator","nameLocation":"4052:11:0","nodeType":"VariableDeclaration","scope":83,"src":"4044:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67,"name":"address","nodeType":"ElementaryTypeName","src":"4044:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":70,"mutability":"mutable","name":"execAddress","nameLocation":"4081:11:0","nodeType":"VariableDeclaration","scope":83,"src":"4073:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69,"name":"address","nodeType":"ElementaryTypeName","src":"4073:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72,"mutability":"mutable","name":"taskId","nameLocation":"4110:6:0","nodeType":"VariableDeclaration","scope":83,"src":"4102:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":71,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4102:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":74,"mutability":"mutable","name":"correlationId","nameLocation":"4134:13:0","nodeType":"VariableDeclaration","scope":83,"src":"4126:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":73,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4126:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76,"mutability":"mutable","name":"execData","nameLocation":"4170:8:0","nodeType":"VariableDeclaration","scope":83,"src":"4157:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75,"name":"bytes","nodeType":"ElementaryTypeName","src":"4157:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":78,"mutability":"mutable","name":"revertOnFailure","nameLocation":"4193:15:0","nodeType":"VariableDeclaration","scope":83,"src":"4188:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77,"name":"bool","nodeType":"ElementaryTypeName","src":"4188:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":80,"mutability":"mutable","name":"singleExec","nameLocation":"4223:10:0","nodeType":"VariableDeclaration","scope":83,"src":"4218:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79,"name":"bool","nodeType":"ElementaryTypeName","src":"4218:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4034:205:0"},"returnParameters":{"id":82,"nodeType":"ParameterList","parameters":[],"src":"4248:0:0"},"scope":149,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":103,"nodeType":"FunctionDefinition","src":"5063:265:0","nodes":[],"documentation":{"id":84,"nodeType":"StructuredDocumentation","src":"4255:803:0","text":" @notice Execution API called by Gelato, using Gelato Sync fee as fee payment method.\n @param taskCreator The address which created the task.\n @param execAddress Address of contract that should be called by Gelato.\n @param taskId Unique hash of the task.\n @param txFee Fee paid to Gelato for execution, transfered to Gelato.feeCollector().\n @param feeToken Token used to pay for the execution. ETH = 0xeeeeee...\n @param execData Execution data to be called with / function selector if execution data is yet to be determined.\n @param revertOnFailure To revert or not if call to execAddress fails. (Used for off-chain simulations)\n @param singleExec If the task is a SingleExec task. If true, task will be cancelled after execution."},"functionSelector":"30a9fe6a","implemented":false,"kind":"function","modifiers":[],"name":"execBypassModuleSyncFee","nameLocation":"5072:23:0","parameters":{"id":101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86,"mutability":"mutable","name":"taskCreator","nameLocation":"5113:11:0","nodeType":"VariableDeclaration","scope":103,"src":"5105:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85,"name":"address","nodeType":"ElementaryTypeName","src":"5105:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":88,"mutability":"mutable","name":"execAddress","nameLocation":"5142:11:0","nodeType":"VariableDeclaration","scope":103,"src":"5134:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87,"name":"address","nodeType":"ElementaryTypeName","src":"5134:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90,"mutability":"mutable","name":"taskId","nameLocation":"5171:6:0","nodeType":"VariableDeclaration","scope":103,"src":"5163:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":89,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5163:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":92,"mutability":"mutable","name":"txFee","nameLocation":"5195:5:0","nodeType":"VariableDeclaration","scope":103,"src":"5187:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91,"name":"uint256","nodeType":"ElementaryTypeName","src":"5187:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":94,"mutability":"mutable","name":"feeToken","nameLocation":"5218:8:0","nodeType":"VariableDeclaration","scope":103,"src":"5210:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93,"name":"address","nodeType":"ElementaryTypeName","src":"5210:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":96,"mutability":"mutable","name":"execData","nameLocation":"5249:8:0","nodeType":"VariableDeclaration","scope":103,"src":"5236:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":95,"name":"bytes","nodeType":"ElementaryTypeName","src":"5236:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":98,"mutability":"mutable","name":"revertOnFailure","nameLocation":"5272:15:0","nodeType":"VariableDeclaration","scope":103,"src":"5267:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":97,"name":"bool","nodeType":"ElementaryTypeName","src":"5267:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":100,"mutability":"mutable","name":"singleExec","nameLocation":"5302:10:0","nodeType":"VariableDeclaration","scope":103,"src":"5297:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":99,"name":"bool","nodeType":"ElementaryTypeName","src":"5297:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5095:223:0"},"returnParameters":{"id":102,"nodeType":"ParameterList","parameters":[],"src":"5327:0:0"},"scope":149,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":114,"nodeType":"FunctionDefinition","src":"5556:126:0","nodes":[],"documentation":{"id":104,"nodeType":"StructuredDocumentation","src":"5334:217:0","text":" @notice Sets the address of task modules. Only callable by proxy admin.\n @param modules List of modules to be set\n @param moduleAddresses List of addresses for respective modules."},"functionSelector":"813785e6","implemented":false,"kind":"function","modifiers":[],"name":"setModule","nameLocation":"5565:9:0","parameters":{"id":112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":108,"mutability":"mutable","name":"modules","nameLocation":"5615:7:0","nodeType":"VariableDeclaration","scope":114,"src":"5584:38:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_Module_$190_$dyn_calldata_ptr","typeString":"enum LibDataTypes.Module[]"},"typeName":{"baseType":{"id":106,"nodeType":"UserDefinedTypeName","pathNode":{"id":105,"name":"LibDataTypes.Module","nodeType":"IdentifierPath","referencedDeclaration":190,"src":"5584:19:0"},"referencedDeclaration":190,"src":"5584:19:0","typeDescriptions":{"typeIdentifier":"t_enum$_Module_$190","typeString":"enum LibDataTypes.Module"}},"id":107,"nodeType":"ArrayTypeName","src":"5584:21:0","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_Module_$190_$dyn_storage_ptr","typeString":"enum LibDataTypes.Module[]"}},"visibility":"internal"},{"constant":false,"id":111,"mutability":"mutable","name":"moduleAddresses","nameLocation":"5651:15:0","nodeType":"VariableDeclaration","scope":114,"src":"5632:34:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":109,"name":"address","nodeType":"ElementaryTypeName","src":"5632:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":110,"nodeType":"ArrayTypeName","src":"5632:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5574:98:0"},"returnParameters":{"id":113,"nodeType":"ParameterList","parameters":[],"src":"5681:0:0"},"scope":149,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":122,"nodeType":"FunctionDefinition","src":"5971:66:0","nodes":[],"documentation":{"id":115,"nodeType":"StructuredDocumentation","src":"5688:278:0","text":" @notice Helper function to query fee and feeToken to be used for payment. (For executions which pays itself)\n @return uint256 Fee amount to be paid.\n @return address Token to be paid. (Determined and passed by taskCreator during createTask)"},"functionSelector":"b810c636","implemented":false,"kind":"function","modifiers":[],"name":"getFeeDetails","nameLocation":"5980:13:0","parameters":{"id":116,"nodeType":"ParameterList","parameters":[],"src":"5993:2:0"},"returnParameters":{"id":121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":122,"src":"6019:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":117,"name":"uint256","nodeType":"ElementaryTypeName","src":"6019:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":120,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":122,"src":"6028:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":119,"name":"address","nodeType":"ElementaryTypeName","src":"6028:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6018:18:0"},"scope":149,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":131,"nodeType":"FunctionDefinition","src":"6253:112:0","nodes":[],"documentation":{"id":123,"nodeType":"StructuredDocumentation","src":"6043:205:0","text":" @notice Helper func to query all open tasks by a task creator.\n @param taskCreator Address of task creator to query.\n @return bytes32[] List of taskIds created."},"functionSelector":"0407145c","implemented":false,"kind":"function","modifiers":[],"name":"getTaskIdsByUser","nameLocation":"6262:16:0","parameters":{"id":126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":125,"mutability":"mutable","name":"taskCreator","nameLocation":"6287:11:0","nodeType":"VariableDeclaration","scope":131,"src":"6279:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":124,"name":"address","nodeType":"ElementaryTypeName","src":"6279:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6278:21:0"},"returnParameters":{"id":130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":129,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":131,"src":"6347:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":127,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6347:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":128,"nodeType":"ArrayTypeName","src":"6347:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"6346:18:0"},"scope":149,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":148,"nodeType":"FunctionDefinition","src":"6935:228:0","nodes":[],"documentation":{"id":132,"nodeType":"StructuredDocumentation","src":"6371:559:0","text":" @notice Helper function to compute task id with module arguments\n @param taskCreator The address which created the task.\n @param execAddress Address of contract that will be called by Gelato.\n @param execSelector Signature of the function which will be called by Gelato.\n @param moduleData  Conditional modules that will be used. {See LibDataTypes-ModuleData}\n @param feeToken Address of token to be used as payment. Use address(0) if Gelato 1Balance is being used, 0xeeeeee... for ETH or native tokens."},"functionSelector":"3140576e","implemented":false,"kind":"function","modifiers":[],"name":"getTaskId","nameLocation":"6944:9:0","parameters":{"id":144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":134,"mutability":"mutable","name":"taskCreator","nameLocation":"6971:11:0","nodeType":"VariableDeclaration","scope":148,"src":"6963:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":133,"name":"address","nodeType":"ElementaryTypeName","src":"6963:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":136,"mutability":"mutable","name":"execAddress","nameLocation":"7000:11:0","nodeType":"VariableDeclaration","scope":148,"src":"6992:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":135,"name":"address","nodeType":"ElementaryTypeName","src":"6992:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":138,"mutability":"mutable","name":"execSelector","nameLocation":"7028:12:0","nodeType":"VariableDeclaration","scope":148,"src":"7021:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":137,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7021:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":141,"mutability":"mutable","name":"moduleData","nameLocation":"7081:10:0","nodeType":"VariableDeclaration","scope":148,"src":"7050:41:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ModuleData_$198_memory_ptr","typeString":"struct LibDataTypes.ModuleData"},"typeName":{"id":140,"nodeType":"UserDefinedTypeName","pathNode":{"id":139,"name":"LibDataTypes.ModuleData","nodeType":"IdentifierPath","referencedDeclaration":198,"src":"7050:23:0"},"referencedDeclaration":198,"src":"7050:23:0","typeDescriptions":{"typeIdentifier":"t_struct$_ModuleData_$198_storage_ptr","typeString":"struct LibDataTypes.ModuleData"}},"visibility":"internal"},{"constant":false,"id":143,"mutability":"mutable","name":"feeToken","nameLocation":"7109:8:0","nodeType":"VariableDeclaration","scope":148,"src":"7101:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":142,"name":"address","nodeType":"ElementaryTypeName","src":"7101:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6953:170:0"},"returnParameters":{"id":147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":146,"mutability":"mutable","name":"taskId","nameLocation":"7155:6:0","nodeType":"VariableDeclaration","scope":148,"src":"7147:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":145,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7147:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7146:16:0"},"scope":149,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":6,"name":"IGelato1Balance","nodeType":"IdentifierPath","referencedDeclaration":181,"src":"230:15:0"},"id":7,"nodeType":"InheritanceSpecifier","src":"230:15:0"}],"canonicalName":"IAutomate","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[149,181],"name":"IAutomate","nameLocation":"217:9:0","scope":150,"usedErrors":[]}],"license":"MIT"},"id":0}