@settlemint/solidity-zeto
Version:
Smart contract set to build Zero Knowledge tokens in SettleMint
223 lines (222 loc) • 23.3 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "ZetoTokenFactory",
"sourceName": "contracts/factory.sol",
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "FailedDeployment",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "InsufficientBalance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "OwnableInvalidOwner",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "OwnableUnauthorizedAccount",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "zetoToken",
"type": "address"
}
],
"name": "ZetoTokenDeployed",
"type": "event"
},
{
"inputs": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "address",
"name": "initialOwner",
"type": "address"
}
],
"name": "deployZetoFungibleToken",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "address",
"name": "initialOwner",
"type": "address"
}
],
"name": "deployZetoNonFungibleToken",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"components": [
{
"internalType": "address",
"name": "implementation",
"type": "address"
},
{
"internalType": "address",
"name": "depositVerifier",
"type": "address"
},
{
"internalType": "address",
"name": "withdrawVerifier",
"type": "address"
},
{
"internalType": "address",
"name": "verifier",
"type": "address"
},
{
"internalType": "address",
"name": "batchVerifier",
"type": "address"
},
{
"internalType": "address",
"name": "batchWithdrawVerifier",
"type": "address"
}
],
"internalType": "struct ZetoTokenFactory.ImplementationInfo",
"name": "implementation",
"type": "tuple"
}
],
"name": "registerImplementation",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608080604052346075573315605f5760008054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36111c1908161007b8239f35b631e4fbdf760e01b600052600060045260246000fd5b600080fdfe6080604052600436101561001257600080fd5b6000803560e01c8063157d4e2114610c38578063715018a614610b9c5780638da5cb5b14610b4b578063d7c567d61461063f578063e83b3f66146101545763f2fde38b1461005f57600080fd5b346101515760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101515760043573ffffffffffffffffffffffffffffffffffffffff811680910361014f576100b761113c565b80156101235773ffffffffffffffffffffffffffffffffffffffff8254827fffffffffffffffffffffffff00000000000000000000000000000000000000008216178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b6024827f1e4fbdf700000000000000000000000000000000000000000000000000000000815280600452fd5b505b80fd5b50346101515760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101515760043567ffffffffffffffff811161014f576101a4903690600401610f06565b60c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc36011261014f57604051906101db82610e7a565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361063b57825260443573ffffffffffffffffffffffffffffffffffffffff8116810361063b576020830190815260643573ffffffffffffffffffffffffffffffffffffffff8116810361063757604084019081526084359073ffffffffffffffffffffffffffffffffffffffff82168203610633576060850191825260a4359273ffffffffffffffffffffffffffffffffffffffff8416840361062f576080860193845260c4359473ffffffffffffffffffffffffffffffffffffffff8616860361062b5760a087019586526102cb61113c565b73ffffffffffffffffffffffffffffffffffffffff875116156105a75773ffffffffffffffffffffffffffffffffffffffff845116156105235761030e90610fed565b955173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1686547fffffffffffffffffffffffff0000000000000000000000000000000000000000161786555173ffffffffffffffffffffffffffffffffffffffff16600186019073ffffffffffffffffffffffffffffffffffffffff1681547fffffffffffffffffffffffff0000000000000000000000000000000000000000161790555173ffffffffffffffffffffffffffffffffffffffff16600285019073ffffffffffffffffffffffffffffffffffffffff1681547fffffffffffffffffffffffff0000000000000000000000000000000000000000161790555173ffffffffffffffffffffffffffffffffffffffff16600384019073ffffffffffffffffffffffffffffffffffffffff1681547fffffffffffffffffffffffff0000000000000000000000000000000000000000161790555173ffffffffffffffffffffffffffffffffffffffff16600483019073ffffffffffffffffffffffffffffffffffffffff1681547fffffffffffffffffffffffff0000000000000000000000000000000000000000161790555173ffffffffffffffffffffffffffffffffffffffff16906005019073ffffffffffffffffffffffffffffffffffffffff1681547fffffffffffffffffffffffff00000000000000000000000000000000000000001617905580f35b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f466163746f72793a20766572696669657220616464726573732069732072657160448201527f75697265640000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f466163746f72793a20696d706c656d656e746174696f6e20616464726573732060448201527f69732072657175697265640000000000000000000000000000000000000000006064820152fd5b8780fd5b8680fd5b8580fd5b8480fd5b8380fd5b50346101515761065861065136610f80565b9190610fed565b906040519161066683610e7a565b73ffffffffffffffffffffffffffffffffffffffff81541680845273ffffffffffffffffffffffffffffffffffffffff600183015416916020850192835273ffffffffffffffffffffffffffffffffffffffff6002820154166040860190815273ffffffffffffffffffffffffffffffffffffffff600383015416956060810196875261072473ffffffffffffffffffffffffffffffffffffffff60058160048701541695608085019687520154169460a083019586521515611026565b73ffffffffffffffffffffffffffffffffffffffff85511615610ac75773ffffffffffffffffffffffffffffffffffffffff82511615610a435773ffffffffffffffffffffffffffffffffffffffff835116156109bf5773ffffffffffffffffffffffffffffffffffffffff8451161561093b577fffffffffffffffffffffffffffffffffff0000000000000000000000000000006e5af43d82803e903d91602b57fd5bf39151763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16178a5260781b161760205273ffffffffffffffffffffffffffffffffffffffff6037600989f0169586156109135773ffffffffffffffffffffffffffffffffffffffff808080809461083e60016110b1565b511697511693511693511693511693863b1561062b5773ffffffffffffffffffffffffffffffffffffffff604051967fcc2a9a5b000000000000000000000000000000000000000000000000000000008852166004870152602486015260448501526064840152608483015260a4820152828160c48183865af18015610908576108f3575b60208383807f61a122822c33eb587240ac03c263df8e525c975793c9d3118d54888abdb036276040519380a28152f35b6108fe838092610ec5565b61014f57386108c3565b6040513d85823e3d90fd5b6004887fb06ebf3d000000000000000000000000000000000000000000000000000000008152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f466163746f72793a20626174636857697468647261775665726966696572206160448201527f64647265737320697320726571756972656400000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f466163746f72793a20626174636856657269666965722061646472657373206960448201527f73207265717569726564000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f466163746f72793a20776974686472617756657269666965722061646472657360448201527f73206973207265717569726564000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f466163746f72793a206465706f7369745665726966696572206164647265737360448201527f20697320726571756972656400000000000000000000000000000000000000006064820152fd5b503461015157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101515773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461015157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015157610bd361113c565b8073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461015157610c5290610c4b36610f80565b9290610fed565b906e5af43d82803e903d91602b57fd5bf37fffffffffffffffffffffffffffffffffff000000000000000000000000000000604051610c9081610e7a565b610d2f73ffffffffffffffffffffffffffffffffffffffff86541680835273ffffffffffffffffffffffffffffffffffffffff600188015416602084015273ffffffffffffffffffffffffffffffffffffffff600288015416604084015273ffffffffffffffffffffffffffffffffffffffff60058160038a0154169860608601998a5282600482015416608087015201541660a08401521515611026565b51763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c1617845260781b161760205273ffffffffffffffffffffffffffffffffffffffff6037600983f016918215610e525773ffffffffffffffffffffffffffffffffffffffff90610d9f60016110b1565b5116823b1561014f5773ffffffffffffffffffffffffffffffffffffffff604051947f485cc9550000000000000000000000000000000000000000000000000000000086521660048501526024840152808360448183865af1928315610e4557602093610e35575b5090807f61a122822c33eb587240ac03c263df8e525c975793c9d3118d54888abdb036276040519380a28152f35b81610e3f91610ec5565b38610e07565b50604051903d90823e3d90fd5b6004827fb06ebf3d000000000000000000000000000000000000000000000000000000008152fd5b60c0810190811067ffffffffffffffff821117610e9657604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610e9657604052565b81601f82011215610f7b5780359067ffffffffffffffff8211610e965760405192610f5960207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601160185610ec5565b82845260208383010111610f7b57816000926020809301838601378301015290565b600080fd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc820112610f7b576004359067ffffffffffffffff8211610f7b57610fc991600401610f06565b9060243573ffffffffffffffffffffffffffffffffffffffff81168103610f7b5790565b604051908181519160005b8381106110115750506020918101600181520301902090565b60208282018101518683015285935001610ff8565b1561102d57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f466163746f72793a206661696c656420746f2066696e6420696d706c656d656e60448201527f746174696f6e00000000000000000000000000000000000000000000000000006064820152fd5b156110b857565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f466163746f72793a206661696c656420746f20636c6f6e6520696d706c656d6560448201527f6e746174696f6e000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff60005416330361115d57565b7f118cdaa7000000000000000000000000000000000000000000000000000000006000523360045260246000fdfea264697066735822122098edca3dfeef93325c1ca0b06b35a1f0ade78232e4e1c51e555ef8e207896e0f64736f6c634300081b0033",
"deployedBytecode": "0x6080604052600436101561001257600080fd5b6000803560e01c8063157d4e2114610c38578063715018a614610b9c5780638da5cb5b14610b4b578063d7c567d61461063f578063e83b3f66146101545763f2fde38b1461005f57600080fd5b346101515760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101515760043573ffffffffffffffffffffffffffffffffffffffff811680910361014f576100b761113c565b80156101235773ffffffffffffffffffffffffffffffffffffffff8254827fffffffffffffffffffffffff00000000000000000000000000000000000000008216178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b6024827f1e4fbdf700000000000000000000000000000000000000000000000000000000815280600452fd5b505b80fd5b50346101515760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101515760043567ffffffffffffffff811161014f576101a4903690600401610f06565b60c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc36011261014f57604051906101db82610e7a565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361063b57825260443573ffffffffffffffffffffffffffffffffffffffff8116810361063b576020830190815260643573ffffffffffffffffffffffffffffffffffffffff8116810361063757604084019081526084359073ffffffffffffffffffffffffffffffffffffffff82168203610633576060850191825260a4359273ffffffffffffffffffffffffffffffffffffffff8416840361062f576080860193845260c4359473ffffffffffffffffffffffffffffffffffffffff8616860361062b5760a087019586526102cb61113c565b73ffffffffffffffffffffffffffffffffffffffff875116156105a75773ffffffffffffffffffffffffffffffffffffffff845116156105235761030e90610fed565b955173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1686547fffffffffffffffffffffffff0000000000000000000000000000000000000000161786555173ffffffffffffffffffffffffffffffffffffffff16600186019073ffffffffffffffffffffffffffffffffffffffff1681547fffffffffffffffffffffffff0000000000000000000000000000000000000000161790555173ffffffffffffffffffffffffffffffffffffffff16600285019073ffffffffffffffffffffffffffffffffffffffff1681547fffffffffffffffffffffffff0000000000000000000000000000000000000000161790555173ffffffffffffffffffffffffffffffffffffffff16600384019073ffffffffffffffffffffffffffffffffffffffff1681547fffffffffffffffffffffffff0000000000000000000000000000000000000000161790555173ffffffffffffffffffffffffffffffffffffffff16600483019073ffffffffffffffffffffffffffffffffffffffff1681547fffffffffffffffffffffffff0000000000000000000000000000000000000000161790555173ffffffffffffffffffffffffffffffffffffffff16906005019073ffffffffffffffffffffffffffffffffffffffff1681547fffffffffffffffffffffffff00000000000000000000000000000000000000001617905580f35b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f466163746f72793a20766572696669657220616464726573732069732072657160448201527f75697265640000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f466163746f72793a20696d706c656d656e746174696f6e20616464726573732060448201527f69732072657175697265640000000000000000000000000000000000000000006064820152fd5b8780fd5b8680fd5b8580fd5b8480fd5b8380fd5b50346101515761065861065136610f80565b9190610fed565b906040519161066683610e7a565b73ffffffffffffffffffffffffffffffffffffffff81541680845273ffffffffffffffffffffffffffffffffffffffff600183015416916020850192835273ffffffffffffffffffffffffffffffffffffffff6002820154166040860190815273ffffffffffffffffffffffffffffffffffffffff600383015416956060810196875261072473ffffffffffffffffffffffffffffffffffffffff60058160048701541695608085019687520154169460a083019586521515611026565b73ffffffffffffffffffffffffffffffffffffffff85511615610ac75773ffffffffffffffffffffffffffffffffffffffff82511615610a435773ffffffffffffffffffffffffffffffffffffffff835116156109bf5773ffffffffffffffffffffffffffffffffffffffff8451161561093b577fffffffffffffffffffffffffffffffffff0000000000000000000000000000006e5af43d82803e903d91602b57fd5bf39151763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16178a5260781b161760205273ffffffffffffffffffffffffffffffffffffffff6037600989f0169586156109135773ffffffffffffffffffffffffffffffffffffffff808080809461083e60016110b1565b511697511693511693511693511693863b1561062b5773ffffffffffffffffffffffffffffffffffffffff604051967fcc2a9a5b000000000000000000000000000000000000000000000000000000008852166004870152602486015260448501526064840152608483015260a4820152828160c48183865af18015610908576108f3575b60208383807f61a122822c33eb587240ac03c263df8e525c975793c9d3118d54888abdb036276040519380a28152f35b6108fe838092610ec5565b61014f57386108c3565b6040513d85823e3d90fd5b6004887fb06ebf3d000000000000000000000000000000000000000000000000000000008152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f466163746f72793a20626174636857697468647261775665726966696572206160448201527f64647265737320697320726571756972656400000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f466163746f72793a20626174636856657269666965722061646472657373206960448201527f73207265717569726564000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f466163746f72793a20776974686472617756657269666965722061646472657360448201527f73206973207265717569726564000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f466163746f72793a206465706f7369745665726966696572206164647265737360448201527f20697320726571756972656400000000000000000000000000000000000000006064820152fd5b503461015157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101515773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461015157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015157610bd361113c565b8073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461015157610c5290610c4b36610f80565b9290610fed565b906e5af43d82803e903d91602b57fd5bf37fffffffffffffffffffffffffffffffffff000000000000000000000000000000604051610c9081610e7a565b610d2f73ffffffffffffffffffffffffffffffffffffffff86541680835273ffffffffffffffffffffffffffffffffffffffff600188015416602084015273ffffffffffffffffffffffffffffffffffffffff600288015416604084015273ffffffffffffffffffffffffffffffffffffffff60058160038a0154169860608601998a5282600482015416608087015201541660a08401521515611026565b51763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c1617845260781b161760205273ffffffffffffffffffffffffffffffffffffffff6037600983f016918215610e525773ffffffffffffffffffffffffffffffffffffffff90610d9f60016110b1565b5116823b1561014f5773ffffffffffffffffffffffffffffffffffffffff604051947f485cc9550000000000000000000000000000000000000000000000000000000086521660048501526024840152808360448183865af1928315610e4557602093610e35575b5090807f61a122822c33eb587240ac03c263df8e525c975793c9d3118d54888abdb036276040519380a28152f35b81610e3f91610ec5565b38610e07565b50604051903d90823e3d90fd5b6004827fb06ebf3d000000000000000000000000000000000000000000000000000000008152fd5b60c0810190811067ffffffffffffffff821117610e9657604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610e9657604052565b81601f82011215610f7b5780359067ffffffffffffffff8211610e965760405192610f5960207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601160185610ec5565b82845260208383010111610f7b57816000926020809301838601378301015290565b600080fd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc820112610f7b576004359067ffffffffffffffff8211610f7b57610fc991600401610f06565b9060243573ffffffffffffffffffffffffffffffffffffffff81168103610f7b5790565b604051908181519160005b8381106110115750506020918101600181520301902090565b60208282018101518683015285935001610ff8565b1561102d57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f466163746f72793a206661696c656420746f2066696e6420696d706c656d656e60448201527f746174696f6e00000000000000000000000000000000000000000000000000006064820152fd5b156110b857565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f466163746f72793a206661696c656420746f20636c6f6e6520696d706c656d6560448201527f6e746174696f6e000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff60005416330361115d57565b7f118cdaa7000000000000000000000000000000000000000000000000000000006000523360045260246000fdfea264697066735822122098edca3dfeef93325c1ca0b06b35a1f0ade78232e4e1c51e555ef8e207896e0f64736f6c634300081b0033",
"linkReferences": {},
"deployedLinkReferences": {}
}