@settlemint/solidity-zeto
Version:
Smart contract set to build Zero Knowledge tokens in SettleMint
423 lines (422 loc) • 22 kB
JSON
{
"_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": {}
}