@tokamak-network/thanos-contracts
Version:
1 lines • 77.5 kB
JSON
{"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":"e