{
  "_format": "hh-sol-artifact-1",
  "contractName": "TemplateDeployer",
  "sourceName": "contracts/soma/TemplateFactory/TemplateDeployer.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "template",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "version",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "deployment",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "TemplateDeployed",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "FACTORY",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "INIT_CODE_HASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "TEMPLATE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "TEMPLATE_VERSION",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "target",
          "type": "address"
        }
      ],
      "name": "deployed",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        }
      ],
      "name": "deployment",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "target",
          "type": "address"
        }
      ],
      "name": "deploymentInfo",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "exists",
              "type": "bool"
            },
            {
              "internalType": "uint64",
              "name": "block",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "timestamp",
              "type": "uint64"
            },
            {
              "internalType": "address",
              "name": "sender",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "templateId",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "version",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "args",
              "type": "bytes"
            },
            {
              "internalType": "bytes[]",
              "name": "functionCalls",
              "type": "bytes[]"
            },
            {
              "internalType": "bool",
              "name": "cloned",
              "type": "bool"
            }
          ],
          "internalType": "struct ITemplateFactory.DeploymentInfo",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalDeployments",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x61010060405273812dd6988ca35be1ba27095d90864298722f915a60805234801561002957600080fd5b506040516108be3803806108be833981016040819052610048916100df565b60c082905260e0819052608051604051631de0a1b760e21b8152600481018490526024810183905260606044820152600060648201526001600160a01b039091169063778286dc90608401602060405180830381865afa1580156100b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d49190610103565b60a0525061011c9050565b600080604083850312156100f257600080fd5b505080516020909101519092909150565b60006020828403121561011557600080fd5b5051919050565b60805160a05160c05160e05161076461015a600039600061010b0152600061016801526000609201526000818160cc015261026401526107646000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806385bb39231161005b57806385bb3923146101405780638bfd917414610163578063ce3220f61461018a578063fb35b4e4146101aa57600080fd5b8063257671f51461008d5780632dd31000146100c75780632e23efce146101065780637016b1981461012d575b600080fd5b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6100ee7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100be565b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b6100ee61013b3660046102d9565b6101b2565b61015361014e36600461030a565b6101e1565b60405190151581526020016100be565b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b61019d61019836600461030a565b610201565b6040516100be91906103d0565b6000546100b4565b60008082815481106101c6576101c661048d565b6000918252602090912001546001600160a01b031692915050565b6000306101ed83610201565b606001516001600160a01b03161492915050565b604080516101208101825260008082526020820181905281830181905260608083018290526080830182905260a0830182905260c0830181905260e08301526101008201529051636719107b60e11b81526001600160a01b0383811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ce3220f690602401600060405180830381865afa1580156102ab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102d39190810190610657565b92915050565b6000602082840312156102eb57600080fd5b5035919050565b6001600160a01b038116811461030757600080fd5b50565b60006020828403121561031c57600080fd5b8135610327816102f2565b9392505050565b60005b83811015610349578181015183820152602001610331565b50506000910152565b6000815180845261036a81602086016020860161032e565b601f01601f19169290920160200192915050565b6000815180845260208085019450848260051b860182860160005b858110156103c35783830389526103b1838351610352565b98850198925090840190600101610399565b5090979650505050505050565b602081526103e360208201835115159052565b60006020830151610400604084018267ffffffffffffffff169052565b50604083015167ffffffffffffffff811660608401525060608301516001600160a01b038116608084015250608083015160a083015260a083015160c083015260c08301516101208060e085015261045c610140850183610352565b915060e0850151610100601f19868503018187015261047b848361037e565b96015115159190940152509192915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff811182821017156104dd576104dd6104a3565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561050c5761050c6104a3565b604052919050565b8051801515811461052457600080fd5b919050565b805167ffffffffffffffff8116811461052457600080fd5b8051610524816102f2565b600082601f83011261055d57600080fd5b815167ffffffffffffffff811115610577576105776104a3565b61058a601f8201601f19166020016104e3565b81815284602083860101111561059f57600080fd5b6105b082602083016020870161032e565b949350505050565b600082601f8301126105c957600080fd5b8151602067ffffffffffffffff808311156105e6576105e66104a3565b8260051b6105f58382016104e3565b938452858101830193838101908886111561060f57600080fd5b84880192505b8583101561064b5782518481111561062d5760008081fd5b61063b8a87838c010161054c565b8352509184019190840190610615565b98975050505050505050565b60006020828403121561066957600080fd5b815167ffffffffffffffff8082111561068157600080fd5b90830190610120828603121561069657600080fd5b61069e6104b9565b6106a783610514565b81526106b560208401610529565b60208201526106c660408401610529565b60408201526106d760608401610541565b60608201526080830151608082015260a083015160a082015260c08301518281111561070257600080fd5b61070e8782860161054c565b60c08301525060e08301518281111561072657600080fd5b610732878286016105b8565b60e0830152506101009150610748828401610514565b9181019190915294935050505056fea164736f6c6343000812000a",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c806385bb39231161005b57806385bb3923146101405780638bfd917414610163578063ce3220f61461018a578063fb35b4e4146101aa57600080fd5b8063257671f51461008d5780632dd31000146100c75780632e23efce146101065780637016b1981461012d575b600080fd5b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6100ee7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100be565b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b6100ee61013b3660046102d9565b6101b2565b61015361014e36600461030a565b6101e1565b60405190151581526020016100be565b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b61019d61019836600461030a565b610201565b6040516100be91906103d0565b6000546100b4565b60008082815481106101c6576101c661048d565b6000918252602090912001546001600160a01b031692915050565b6000306101ed83610201565b606001516001600160a01b03161492915050565b604080516101208101825260008082526020820181905281830181905260608083018290526080830182905260a0830182905260c0830181905260e08301526101008201529051636719107b60e11b81526001600160a01b0383811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ce3220f690602401600060405180830381865afa1580156102ab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102d39190810190610657565b92915050565b6000602082840312156102eb57600080fd5b5035919050565b6001600160a01b038116811461030757600080fd5b50565b60006020828403121561031c57600080fd5b8135610327816102f2565b9392505050565b60005b83811015610349578181015183820152602001610331565b50506000910152565b6000815180845261036a81602086016020860161032e565b601f01601f19169290920160200192915050565b6000815180845260208085019450848260051b860182860160005b858110156103c35783830389526103b1838351610352565b98850198925090840190600101610399565b5090979650505050505050565b602081526103e360208201835115159052565b60006020830151610400604084018267ffffffffffffffff169052565b50604083015167ffffffffffffffff811660608401525060608301516001600160a01b038116608084015250608083015160a083015260a083015160c083015260c08301516101208060e085015261045c610140850183610352565b915060e0850151610100601f19868503018187015261047b848361037e565b96015115159190940152509192915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff811182821017156104dd576104dd6104a3565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561050c5761050c6104a3565b604052919050565b8051801515811461052457600080fd5b919050565b805167ffffffffffffffff8116811461052457600080fd5b8051610524816102f2565b600082601f83011261055d57600080fd5b815167ffffffffffffffff811115610577576105776104a3565b61058a601f8201601f19166020016104e3565b81815284602083860101111561059f57600080fd5b6105b082602083016020870161032e565b949350505050565b600082601f8301126105c957600080fd5b8151602067ffffffffffffffff808311156105e6576105e66104a3565b8260051b6105f58382016104e3565b938452858101830193838101908886111561060f57600080fd5b84880192505b8583101561064b5782518481111561062d5760008081fd5b61063b8a87838c010161054c565b8352509184019190840190610615565b98975050505050505050565b60006020828403121561066957600080fd5b815167ffffffffffffffff8082111561068157600080fd5b90830190610120828603121561069657600080fd5b61069e6104b9565b6106a783610514565b81526106b560208401610529565b60208201526106c660408401610529565b60408201526106d760608401610541565b60608201526080830151608082015260a083015160a082015260c08301518281111561070257600080fd5b61070e8782860161054c565b60c08301525060e08301518281111561072657600080fd5b610732878286016105b8565b60e0830152506101009150610748828401610514565b9181019190915294935050505056fea164736f6c6343000812000a",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
