{
  "_format": "hh-sol-artifact-1",
  "contractName": "Worker",
  "sourceName": "contracts/smartAccounts/Worker.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IFaucetSmartAccount",
          "name": "_faucet",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "ExecuteFailed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotSelf",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "callIndex",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "returnData",
          "type": "bytes"
        }
      ],
      "name": "InternalCallFailed",
      "type": "event"
    },
    {
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "inputs": [],
      "name": "VERSION",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            }
          ],
          "internalType": "struct ISmartAccount.Call[]",
          "name": "calls",
          "type": "tuple[]"
        },
        {
          "internalType": "bool",
          "name": "revertOnError",
          "type": "bool"
        }
      ],
      "name": "executeBatch",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            }
          ],
          "internalType": "struct ISmartAccount.Call[]",
          "name": "calls",
          "type": "tuple[]"
        },
        {
          "internalType": "bool",
          "name": "revertOnError",
          "type": "bool"
        }
      ],
      "name": "executeBatchAndEnsureBalance",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "faucet",
      "outputs": [
        {
          "internalType": "contract IFaucetSmartAccount",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x60a060405234801561000f575f80fd5b506040516105fb3803806105fb83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b60805161056a6100915f395f8181606c015281816102c5015261034c015261056a5ff3fe60806040526004361061003f575f3560e01c80638d2d0f7314610048578063de5f72fd1461005b578063e45be251146100ab578063ffa1ad74146100be57005b3661004657005b005b6100466100563660046103b6565b6100fb565b348015610066575f80fd5b5061008e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100466100b93660046103b6565b61028b565b3480156100c9575f80fd5b506100ee60405180604001604052806005815260200164312e302e3160d81b81525081565b6040516100a2919061047c565b33301461011b576040516314e1dbf760e11b815260040160405180910390fd5b5f5b82811015610285575f8085858481811061013957610139610495565b905060200281019061014b91906104a9565b6101599060208101906104c7565b6001600160a01b031686868581811061017457610174610495565b905060200281019061018691906104a9565b6040013587878681811061019c5761019c610495565b90506020028101906101ae91906104a9565b6101bc9060208101906104ed565b6040516101ca929190610537565b5f6040518083038185875af1925050503d805f8114610204576040519150601f19603f3d011682016040523d82523d5f602084013e610209565b606091505b50915091508161027b5783156102425780515f0361023a5760405163d6bed87360e01b815260040160405180910390fd5b805160208201fd5b827f4f1728acffcf163e98c16d5beb0f11297d0048266b9b63e931217cb20a49e16f82604051610272919061047c565b60405180910390a25b505060010161011d565b50505050565b3330146102ab576040516314e1dbf760e11b815260040160405180910390fd5b6102b68383836100fb565b6102be6102c3565b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639e6c39926040518163ffffffff1660e01b8152600401602060405180830381865afa15801561031f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103439190610546565b4710156103b4577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663af9b81876040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156103a2575f80fd5b505af1158015610285573d5f803e3d5ffd5b565b5f805f604084860312156103c8575f80fd5b833567ffffffffffffffff808211156103df575f80fd5b818601915086601f8301126103f2575f80fd5b813581811115610400575f80fd5b8760208260051b8501011115610414575f80fd5b60209283019550935050840135801515811461042e575f80fd5b809150509250925092565b5f81518084525f5b8181101561045d57602081850181015186830182015201610441565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f61048e6020830184610439565b9392505050565b634e487b7160e01b5f52603260045260245ffd5b5f8235605e198336030181126104bd575f80fd5b9190910192915050565b5f602082840312156104d7575f80fd5b81356001600160a01b038116811461048e575f80fd5b5f808335601e19843603018112610502575f80fd5b83018035915067ffffffffffffffff82111561051c575f80fd5b602001915036819003821315610530575f80fd5b9250929050565b818382375f9101908152919050565b5f60208284031215610556575f80fd5b505191905056fea164736f6c6343000818000a",
  "deployedBytecode": "0x60806040526004361061003f575f3560e01c80638d2d0f7314610048578063de5f72fd1461005b578063e45be251146100ab578063ffa1ad74146100be57005b3661004657005b005b6100466100563660046103b6565b6100fb565b348015610066575f80fd5b5061008e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100466100b93660046103b6565b61028b565b3480156100c9575f80fd5b506100ee60405180604001604052806005815260200164312e302e3160d81b81525081565b6040516100a2919061047c565b33301461011b576040516314e1dbf760e11b815260040160405180910390fd5b5f5b82811015610285575f8085858481811061013957610139610495565b905060200281019061014b91906104a9565b6101599060208101906104c7565b6001600160a01b031686868581811061017457610174610495565b905060200281019061018691906104a9565b6040013587878681811061019c5761019c610495565b90506020028101906101ae91906104a9565b6101bc9060208101906104ed565b6040516101ca929190610537565b5f6040518083038185875af1925050503d805f8114610204576040519150601f19603f3d011682016040523d82523d5f602084013e610209565b606091505b50915091508161027b5783156102425780515f0361023a5760405163d6bed87360e01b815260040160405180910390fd5b805160208201fd5b827f4f1728acffcf163e98c16d5beb0f11297d0048266b9b63e931217cb20a49e16f82604051610272919061047c565b60405180910390a25b505060010161011d565b50505050565b3330146102ab576040516314e1dbf760e11b815260040160405180910390fd5b6102b68383836100fb565b6102be6102c3565b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639e6c39926040518163ffffffff1660e01b8152600401602060405180830381865afa15801561031f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103439190610546565b4710156103b4577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663af9b81876040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156103a2575f80fd5b505af1158015610285573d5f803e3d5ffd5b565b5f805f604084860312156103c8575f80fd5b833567ffffffffffffffff808211156103df575f80fd5b818601915086601f8301126103f2575f80fd5b813581811115610400575f80fd5b8760208260051b8501011115610414575f80fd5b60209283019550935050840135801515811461042e575f80fd5b809150509250925092565b5f81518084525f5b8181101561045d57602081850181015186830182015201610441565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f61048e6020830184610439565b9392505050565b634e487b7160e01b5f52603260045260245ffd5b5f8235605e198336030181126104bd575f80fd5b9190910192915050565b5f602082840312156104d7575f80fd5b81356001600160a01b038116811461048e575f80fd5b5f808335601e19843603018112610502575f80fd5b83018035915067ffffffffffffffff82111561051c575f80fd5b602001915036819003821315610530575f80fd5b9250929050565b818382375f9101908152919050565b5f60208284031215610556575f80fd5b505191905056fea164736f6c6343000818000a",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
