UNPKG

@settlemint/solidity-zeto

Version:

Smart contract set to build Zero Knowledge tokens in SettleMint

223 lines (222 loc) 23.3 kB
{ "_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": {} }