{
    "_format": "hh-sol-artifact-1",
    "contractName": "TestChannelFactory",
    "sourceName": "src.sol/testing/TestChannelFactory.sol",
    "abi": [
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_mastercopy",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "_chainId",
                    "type": "uint256"
                }
            ],
            "stateMutability": "nonpayable",
            "type": "constructor"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "channel",
                    "type": "address"
                }
            ],
            "name": "ChannelCreation",
            "type": "event"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "alice",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "bob",
                    "type": "address"
                }
            ],
            "name": "createChannel",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "channel",
                    "type": "address"
                }
            ],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "alice",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "bob",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "assetId",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "createChannelAndDepositAlice",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "channel",
                    "type": "address"
                }
            ],
            "stateMutability": "payable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "alice",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "bob",
                    "type": "address"
                }
            ],
            "name": "createChannelWithoutSetup",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "channel",
                    "type": "address"
                }
            ],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "alice",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "bob",
                    "type": "address"
                }
            ],
            "name": "deployChannelProxyWithoutSetup",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "getChainId",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "_chainId",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "alice",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "bob",
                    "type": "address"
                }
            ],
            "name": "getChannelAddress",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "getMastercopy",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "getProxyCreationCode",
            "outputs": [
                {
                    "internalType": "bytes",
                    "name": "",
                    "type": "bytes"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "getStoredChainId",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        }
    ],
    "bytecode": "0x60c060405234801561001057600080fd5b50604051610d2f380380610d2f83398101604081905261002f916100ef565b6001600160601b0319606083901b1660805260a0819052818161005182610066565b80516020909101206000555061019492505050565b60606040518060400160405280601481526020017f3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000815250826040518060400160405280600f81526020016e5af43d82803e903d91602b57fd5bf360881b8152506040516020016100d993929190610160565b6040516020818303038152906040529050919050565b60008060408385031215610101578182fd5b82516001600160a01b0381168114610117578283fd5b6020939093015192949293505050565b60008151815b81811015610147576020818501810151868301520161012d565b818111156101555782828601525b509290920192915050565b600061016c8286610127565b606085901b6001600160601b031916815261018a6014820185610127565b9695505050505050565b60805160601c60a051610b6b6101c4600039806101d452806101fa5250806101a952806103495250610b6b6000f3fe6080604052600436106100865760003560e01c80635b056cb5116100595780635b056cb51461011a578063a25dbcc91461013a578063e617aaac1461015a578063efe436931461017a578063fe4545011461018f57610086565b806315727e911461008b57806332a130c9146100b65780633408e470146100d857806335a1ba6f146100ed575b600080fd5b34801561009757600080fd5b506100a06101a2565b6040516100ad9190610972565b60405180910390f35b3480156100c257600080fd5b506100cb6101d2565b6040516100ad9190610afc565b3480156100e457600080fd5b506100cb6101f6565b3480156100f957600080fd5b5061010d6101083660046107a6565b61022e565b6040516100ad9190610907565b34801561012657600080fd5b5061010d6101353660046107a6565b6102da565b34801561014657600080fd5b5061010d6101553660046107a6565b61031d565b34801561016657600080fd5b5061010d6101753660046107a6565b610330565b34801561018657600080fd5b5061010d610347565b61010d61019d3660046107da565b61036b565b60606101cd7f0000000000000000000000000000000000000000000000000000000000000000610448565b905090565b7f000000000000000000000000000000000000000000000000000000000000000090565b60007f0000000000000000000000000000000000000000000000000000000000000000806102265746915061022a565b8091505b5090565b600061023a83836104c8565b604051632d34ba7960e01b81529091506001600160a01b03821690632d34ba799061026b908690869060040161091b565b600060405180830381600087803b15801561028557600080fd5b505af1158015610299573d6000803e3d6000fd5b505050507fa79ba8cc5fdc29196c8d65701a02433c92328f38f0ffbea3908335b80d81409d816040516102cc9190610907565b60405180910390a192915050565b60006102e683836104c8565b90507fa79ba8cc5fdc29196c8d65701a02433c92328f38f0ffbea3908335b80d81409d816040516102cc9190610907565b92915050565b600061032983836104c8565b9392505050565b600061032961033f84846104f2565b60005461052e565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000610377858561022e565b90506103828361053b565b6103de5761039283333085610548565b6103b75760405162461bcd60e51b81526004016103ae90610a80565b60405180910390fd5b6103c283828461059b565b6103de5760405162461bcd60e51b81526004016103ae90610a3c565b60405163635ae90160e01b81526001600160a01b0382169063635ae90190349061040e9087908790600401610959565b6000604051808303818588803b15801561042757600080fd5b505af115801561043b573d6000803e3d6000fd5b5050505050949350505050565b6060604051806040016040528060148152602001733d602d80600a3d3981f3363d3d373d3d3d363d7360601b815250826040518060400160405280600f81526020016e5af43d82803e903d91602b57fd5bf360881b8152506040516020016104b2939291906108c0565b6040516020818303038152906040529050919050565b6000806104d584846104f2565b90506104ea6000826104e56101a2565b6105e3565b949350505050565b600082826104fe6101f6565b60405160200161051093929190610847565b60405160208183030381529060405280519060200120905092915050565b6000610329838330610655565b6001600160a01b03161590565b60006105928585858560405160240161056393929190610935565b60408051601f198184030181529190526020810180516001600160e01b03166323b872dd60e01b179052610694565b95945050505050565b60006104ea8484846040516024016105b4929190610959565b60408051601f198184030181529190526020810180516001600160e01b031663095ea7b360e01b179052610694565b600080844710156106065760405162461bcd60e51b81526004016103ae90610ac5565b82516106245760405162461bcd60e51b81526004016103ae906109a5565b8383516020850187f590506001600160a01b0381166104ea5760405162461bcd60e51b81526004016103ae906109da565b60008060ff60f81b8386866040516020016106739493929190610870565b60408051808303601f19018152919052805160209091012095945050505050565b600061069f83610745565b6106bb5760405162461bcd60e51b81526004016103ae90610a11565b60006060846001600160a01b0316846040516106d791906108a4565b6000604051808303816000865af19150503d8060008114610714576040519150601f19603f3d011682016040523d82523d6000602084013e610719565b606091505b5091509150610728828261077e565b805115806105925750808060200190518101906105929190610827565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906104ea575050151592915050565b8161078b57805160208201fd5b5050565b80356001600160a01b038116811461031757600080fd5b600080604083850312156107b8578182fd5b6107c2848461078f565b91506107d1846020850161078f565b90509250929050565b600080600080608085870312156107ef578182fd5b6107f9868661078f565b9350610808866020870161078f565b9250610817866040870161078f565b9396929550929360600135925050565b600060208284031215610838578081fd5b81518015158114610329578182fd5b6001600160601b0319606094851b811682529290931b9091166014830152602882015260480190565b6001600160f81b031994909416845260609290921b6001600160601b03191660018401526015830152603582015260550190565b600082516108b6818460208701610b05565b9190910192915050565b600084516108d2818460208901610b05565b606085901b6001600160601b03191690830190815283516108fa816014840160208801610b05565b0160140195945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6000602082528251806020840152610991816040850160208701610b05565b601f01601f19169190910160400192915050565b6020808252818101527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604082015260600190565b60208082526019908201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604082015260600190565b6020808252601190820152704c696245524332303a204e4f5f434f444560781b604082015260600190565b60208082526024908201527f4368616e6e656c466163746f72793a2045524332305f415050524f56455f46416040820152631253115160e21b606082015260800190565b60208082526025908201527f4368616e6e656c466163746f72793a2045524332305f5452414e534645525f46604082015264105253115160da1b606082015260800190565b6020808252601d908201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604082015260600190565b90815260200190565b60005b83811015610b20578181015183820152602001610b08565b83811115610b2f576000848401525b5050505056fea2646970667358221220fa69de65df92b4ccbc7a81a7caa7fcb8650aaa57251807e3e32577e1332d7b9064736f6c63430007010033",
    "deployedBytecode": "0x6080604052600436106100865760003560e01c80635b056cb5116100595780635b056cb51461011a578063a25dbcc91461013a578063e617aaac1461015a578063efe436931461017a578063fe4545011461018f57610086565b806315727e911461008b57806332a130c9146100b65780633408e470146100d857806335a1ba6f146100ed575b600080fd5b34801561009757600080fd5b506100a06101a2565b6040516100ad9190610972565b60405180910390f35b3480156100c257600080fd5b506100cb6101d2565b6040516100ad9190610afc565b3480156100e457600080fd5b506100cb6101f6565b3480156100f957600080fd5b5061010d6101083660046107a6565b61022e565b6040516100ad9190610907565b34801561012657600080fd5b5061010d6101353660046107a6565b6102da565b34801561014657600080fd5b5061010d6101553660046107a6565b61031d565b34801561016657600080fd5b5061010d6101753660046107a6565b610330565b34801561018657600080fd5b5061010d610347565b61010d61019d3660046107da565b61036b565b60606101cd7f0000000000000000000000000000000000000000000000000000000000000000610448565b905090565b7f000000000000000000000000000000000000000000000000000000000000000090565b60007f0000000000000000000000000000000000000000000000000000000000000000806102265746915061022a565b8091505b5090565b600061023a83836104c8565b604051632d34ba7960e01b81529091506001600160a01b03821690632d34ba799061026b908690869060040161091b565b600060405180830381600087803b15801561028557600080fd5b505af1158015610299573d6000803e3d6000fd5b505050507fa79ba8cc5fdc29196c8d65701a02433c92328f38f0ffbea3908335b80d81409d816040516102cc9190610907565b60405180910390a192915050565b60006102e683836104c8565b90507fa79ba8cc5fdc29196c8d65701a02433c92328f38f0ffbea3908335b80d81409d816040516102cc9190610907565b92915050565b600061032983836104c8565b9392505050565b600061032961033f84846104f2565b60005461052e565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000610377858561022e565b90506103828361053b565b6103de5761039283333085610548565b6103b75760405162461bcd60e51b81526004016103ae90610a80565b60405180910390fd5b6103c283828461059b565b6103de5760405162461bcd60e51b81526004016103ae90610a3c565b60405163635ae90160e01b81526001600160a01b0382169063635ae90190349061040e9087908790600401610959565b6000604051808303818588803b15801561042757600080fd5b505af115801561043b573d6000803e3d6000fd5b5050505050949350505050565b6060604051806040016040528060148152602001733d602d80600a3d3981f3363d3d373d3d3d363d7360601b815250826040518060400160405280600f81526020016e5af43d82803e903d91602b57fd5bf360881b8152506040516020016104b2939291906108c0565b6040516020818303038152906040529050919050565b6000806104d584846104f2565b90506104ea6000826104e56101a2565b6105e3565b949350505050565b600082826104fe6101f6565b60405160200161051093929190610847565b60405160208183030381529060405280519060200120905092915050565b6000610329838330610655565b6001600160a01b03161590565b60006105928585858560405160240161056393929190610935565b60408051601f198184030181529190526020810180516001600160e01b03166323b872dd60e01b179052610694565b95945050505050565b60006104ea8484846040516024016105b4929190610959565b60408051601f198184030181529190526020810180516001600160e01b031663095ea7b360e01b179052610694565b600080844710156106065760405162461bcd60e51b81526004016103ae90610ac5565b82516106245760405162461bcd60e51b81526004016103ae906109a5565b8383516020850187f590506001600160a01b0381166104ea5760405162461bcd60e51b81526004016103ae906109da565b60008060ff60f81b8386866040516020016106739493929190610870565b60408051808303601f19018152919052805160209091012095945050505050565b600061069f83610745565b6106bb5760405162461bcd60e51b81526004016103ae90610a11565b60006060846001600160a01b0316846040516106d791906108a4565b6000604051808303816000865af19150503d8060008114610714576040519150601f19603f3d011682016040523d82523d6000602084013e610719565b606091505b5091509150610728828261077e565b805115806105925750808060200190518101906105929190610827565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906104ea575050151592915050565b8161078b57805160208201fd5b5050565b80356001600160a01b038116811461031757600080fd5b600080604083850312156107b8578182fd5b6107c2848461078f565b91506107d1846020850161078f565b90509250929050565b600080600080608085870312156107ef578182fd5b6107f9868661078f565b9350610808866020870161078f565b9250610817866040870161078f565b9396929550929360600135925050565b600060208284031215610838578081fd5b81518015158114610329578182fd5b6001600160601b0319606094851b811682529290931b9091166014830152602882015260480190565b6001600160f81b031994909416845260609290921b6001600160601b03191660018401526015830152603582015260550190565b600082516108b6818460208701610b05565b9190910192915050565b600084516108d2818460208901610b05565b606085901b6001600160601b03191690830190815283516108fa816014840160208801610b05565b0160140195945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6000602082528251806020840152610991816040850160208701610b05565b601f01601f19169190910160400192915050565b6020808252818101527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604082015260600190565b60208082526019908201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604082015260600190565b6020808252601190820152704c696245524332303a204e4f5f434f444560781b604082015260600190565b60208082526024908201527f4368616e6e656c466163746f72793a2045524332305f415050524f56455f46416040820152631253115160e21b606082015260800190565b60208082526025908201527f4368616e6e656c466163746f72793a2045524332305f5452414e534645525f46604082015264105253115160da1b606082015260800190565b6020808252601d908201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604082015260600190565b90815260200190565b60005b83811015610b20578181015183820152602001610b08565b83811115610b2f576000848401525b5050505056fea2646970667358221220fa69de65df92b4ccbc7a81a7caa7fcb8650aaa57251807e3e32577e1332d7b9064736f6c63430007010033",
    "linkReferences": {},
    "deployedLinkReferences": {}
}
