UNPKG

@settlemint/solidity-zeto

Version:

Smart contract set to build Zero Knowledge tokens in SettleMint

423 lines (422 loc) 22 kB
{ "_format": "hh-sol-artifact-1", "contractName": "SampleERC20", "sourceName": "contracts/erc20.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "initialOwner", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "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": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "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": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x60806040523461044b57610f516020813803918261001c81610450565b93849283398101031261044b57516001600160a01b0381169081900361044b576100466040610450565b90601282527129b0b6b836329022a9219918103a37b5b2b760711b60208301526100706040610450565b600b81526a053616d706c6545524332360ac1b602082015282519091906001600160401b03811161035457600354600181811c91168015610441575b602082101461033457601f81116103dc575b506020601f8211600114610375578192939460009261036a575b50508160011b916000199060031b1c1916176003555b81516001600160401b03811161035457600454600181811c9116801561034a575b602082101461033457601f81116102cf575b50602092601f821160011461026a579281929360009261025f575b50508160011b916000199060031b1c1916176004555b801561024957600580546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a333156102335760025469d3c21bcecceda1000000810180911161021d576002556000338152806020526040812069d3c21bcecceda100000081540190556040519069d3c21bcecceda100000082527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a3604051610adb90816104768239f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b600052600060045260246000fd5b631e4fbdf760e01b600052600060045260246000fd5b01519050388061013c565b601f198216936004600052806000209160005b8681106102b7575083600195961061029e575b505050811b01600455610152565b015160001960f88460031b161c19169055388080610290565b9192602060018192868501518155019401920161027d565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c8101916020841061032a575b601f0160051c01905b81811061031e5750610121565b60008155600101610311565b9091508190610308565b634e487b7160e01b600052602260045260246000fd5b90607f169061010f565b634e487b7160e01b600052604160045260246000fd5b0151905038806100d8565b601f198216906003600052806000209160005b8181106103c4575095836001959697106103ab575b505050811b016003556100ee565b015160001960f88460031b161c1916905538808061039d565b9192602060018192868b015181550194019201610388565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610437575b601f0160051c01905b81811061042b57506100be565b6000815560010161041e565b9091508190610415565b90607f16906100ac565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176103545760405256fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde03146107ee57508063095ea7b31461075b57806318160ddd1461073d57806323b872dd146105b7578063313ce5671461059b57806340c10f19146104a857806370a0823114610461578063715018a6146103e15780638da5cb5b146103ad57806395d89b411461022a578063a9059cbb146101f9578063dd62ed3e146101875763f2fde38b146100ae57600080fd5b346101825760206003193601126101825773ffffffffffffffffffffffffffffffffffffffff6100dc610915565b6100e4610a56565b1680156101535773ffffffffffffffffffffffffffffffffffffffff600554827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b7f1e4fbdf700000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b600080fd5b34610182576040600319360112610182576101a0610915565b73ffffffffffffffffffffffffffffffffffffffff6101bd610938565b9116600052600160205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b346101825760406003193601126101825761021f610215610915565b602435903361095b565b602060405160018152f35b3461018257600060031936011261018257604051600090600454918260011c600184169384156103a3575b602082108514610376578394828552908160001461033457506001146102d7575b5003601f01601f191681019067ffffffffffffffff8211818310176102a8576102a4829182604052826108cb565b0390f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6004600090815291507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8183106103185750508101602001601f19610276565b6020919350806001915483858801015201910190918392610302565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b84019091019150601f199050610276565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b90607f1690610255565b3461018257600060031936011261018257602073ffffffffffffffffffffffffffffffffffffffff60055416604051908152f35b34610182576000600319360112610182576103fa610a56565b600073ffffffffffffffffffffffffffffffffffffffff6005547fffffffffffffffffffffffff00000000000000000000000000000000000000008116600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346101825760206003193601126101825773ffffffffffffffffffffffffffffffffffffffff61048f610915565b1660005260006020526020604060002054604051908152f35b34610182576040600319360112610182576104c1610915565b73ffffffffffffffffffffffffffffffffffffffff602435916104e2610a56565b16801561056c576002549180830180931161053d576020926002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600093849284845283825260408420818154019055604051908152a380f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7fec442f0500000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b3461018257600060031936011261018257602060405160128152f35b34610182576060600319360112610182576105d0610915565b6105d8610938565b6044359073ffffffffffffffffffffffffffffffffffffffff831692836000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff33166000526020526040600020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110610658575b5061021f935061095b565b8381106107075784156106d85733156106a95761021f946000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff3316600052602052836040600020910390558461064d565b7f94280d6200000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b7fe602df0500000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b83907ffb8f41b2000000000000000000000000000000000000000000000000000000006000523360045260245260445260646000fd5b34610182576000600319360112610182576020600254604051908152f35b3461018257604060031936011261018257610774610915565b6024359033156106d85773ffffffffffffffffffffffffffffffffffffffff169081156106a957336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b3461018257600060031936011261018257600090600354918260011c600184169384156108c1575b60208210851461037657839482855290816000146103345750600114610864575003601f01601f191681019067ffffffffffffffff8211818310176102a8576102a4829182604052826108cb565b6003600090815291507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8183106108a55750508101602001601f19610276565b602091935080600191548385880101520191019091839261088f565b90607f1690610816565b9190916020815282519283602083015260005b8481106108ff575050601f19601f8460006040809697860101520116010190565b80602080928401015160408286010152016108de565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361018257565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361018257565b73ffffffffffffffffffffffffffffffffffffffff16908115610a275773ffffffffffffffffffffffffffffffffffffffff1691821561056c5760008281528060205260408120548281106109f45791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b6064937fe450d38c0000000000000000000000000000000000000000000000000000000083949352600452602452604452fd5b7f96c6fd1e00000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff600554163303610a7757565b7f118cdaa7000000000000000000000000000000000000000000000000000000006000523360045260246000fdfea26469706673582212201d863d899fb598e226f0aee4f3e95c2ce298996cff2d6d5235c17489d66ec79d64736f6c634300081b0033", "deployedBytecode": "0x608080604052600436101561001357600080fd5b60003560e01c90816306fdde03146107ee57508063095ea7b31461075b57806318160ddd1461073d57806323b872dd146105b7578063313ce5671461059b57806340c10f19146104a857806370a0823114610461578063715018a6146103e15780638da5cb5b146103ad57806395d89b411461022a578063a9059cbb146101f9578063dd62ed3e146101875763f2fde38b146100ae57600080fd5b346101825760206003193601126101825773ffffffffffffffffffffffffffffffffffffffff6100dc610915565b6100e4610a56565b1680156101535773ffffffffffffffffffffffffffffffffffffffff600554827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b7f1e4fbdf700000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b600080fd5b34610182576040600319360112610182576101a0610915565b73ffffffffffffffffffffffffffffffffffffffff6101bd610938565b9116600052600160205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b346101825760406003193601126101825761021f610215610915565b602435903361095b565b602060405160018152f35b3461018257600060031936011261018257604051600090600454918260011c600184169384156103a3575b602082108514610376578394828552908160001461033457506001146102d7575b5003601f01601f191681019067ffffffffffffffff8211818310176102a8576102a4829182604052826108cb565b0390f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6004600090815291507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8183106103185750508101602001601f19610276565b6020919350806001915483858801015201910190918392610302565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b84019091019150601f199050610276565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b90607f1690610255565b3461018257600060031936011261018257602073ffffffffffffffffffffffffffffffffffffffff60055416604051908152f35b34610182576000600319360112610182576103fa610a56565b600073ffffffffffffffffffffffffffffffffffffffff6005547fffffffffffffffffffffffff00000000000000000000000000000000000000008116600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346101825760206003193601126101825773ffffffffffffffffffffffffffffffffffffffff61048f610915565b1660005260006020526020604060002054604051908152f35b34610182576040600319360112610182576104c1610915565b73ffffffffffffffffffffffffffffffffffffffff602435916104e2610a56565b16801561056c576002549180830180931161053d576020926002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600093849284845283825260408420818154019055604051908152a380f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7fec442f0500000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b3461018257600060031936011261018257602060405160128152f35b34610182576060600319360112610182576105d0610915565b6105d8610938565b6044359073ffffffffffffffffffffffffffffffffffffffff831692836000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff33166000526020526040600020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110610658575b5061021f935061095b565b8381106107075784156106d85733156106a95761021f946000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff3316600052602052836040600020910390558461064d565b7f94280d6200000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b7fe602df0500000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b83907ffb8f41b2000000000000000000000000000000000000000000000000000000006000523360045260245260445260646000fd5b34610182576000600319360112610182576020600254604051908152f35b3461018257604060031936011261018257610774610915565b6024359033156106d85773ffffffffffffffffffffffffffffffffffffffff169081156106a957336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b3461018257600060031936011261018257600090600354918260011c600184169384156108c1575b60208210851461037657839482855290816000146103345750600114610864575003601f01601f191681019067ffffffffffffffff8211818310176102a8576102a4829182604052826108cb565b6003600090815291507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8183106108a55750508101602001601f19610276565b602091935080600191548385880101520191019091839261088f565b90607f1690610816565b9190916020815282519283602083015260005b8481106108ff575050601f19601f8460006040809697860101520116010190565b80602080928401015160408286010152016108de565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361018257565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361018257565b73ffffffffffffffffffffffffffffffffffffffff16908115610a275773ffffffffffffffffffffffffffffffffffffffff1691821561056c5760008281528060205260408120548281106109f45791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b6064937fe450d38c0000000000000000000000000000000000000000000000000000000083949352600452602452604452fd5b7f96c6fd1e00000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff600554163303610a7757565b7f118cdaa7000000000000000000000000000000000000000000000000000000006000523360045260246000fdfea26469706673582212201d863d899fb598e226f0aee4f3e95c2ce298996cff2d6d5235c17489d66ec79d64736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} }