[ { "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": [], "name": "MCV2_Token__AlreadyInitialized", "type": "error" }, { "inputs": [], "name": "MCV2_Token__PermissionDenied", "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": "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": "bond", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnByBond", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" } ], "name": "init", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mintByBond", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "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" } ]
608060405234801561001057600080fd5b50610ea6806100206000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806364c9ec6f1161008c57806395d89b411161006657806395d89b4114610201578063a9059cbb14610209578063dd62ed3e1461021c578063f4efe8f21461026257600080fd5b806364c9ec6f1461016e5780637029144c146101b857806370a08231146101cb57600080fd5b80631b5ad8b5116100bd5780631b5ad8b51461013757806323b872dd1461014c578063313ce5671461015f57600080fd5b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610125575b600080fd5b6100ec610275565b6040516100f99190610a46565b60405180910390f35b610115610110366004610adb565b610307565b60405190151581526020016100f9565b6002545b6040519081526020016100f9565b61014a610145366004610adb565b610321565b005b61011561015a366004610b05565b610386565b604051601281526020016100f9565b60055461019390610100900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f9565b61014a6101c6366004610b8a565b6103aa565b6101296101d9366004610bf6565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100ec610462565b610115610217366004610adb565b610471565b61012961022a366004610c18565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b61014a610270366004610adb565b61047f565b60606003805461028490610c4b565b80601f01602080910402602001604051908101604052809291908181526020018280546102b090610c4b565b80156102fd5780601f106102d2576101008083540402835291602001916102fd565b820191906000526020600020905b8154815290600101906020018083116102e057829003601f168201915b5050505050905090565b60003361031581858561050a565b60019150505b92915050565b60055473ffffffffffffffffffffffffffffffffffffffff610100909104163314610378576040517f89d1b55f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610382828261051c565b5050565b60003361039485828561057d565b61039f85858561064c565b506001949350505050565b60055460ff16156103e7576040517f5253b27100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055600361041f848683610d1b565b50600461042d828483610d1b565b5050600580547fffffffffffffffffffffff0000000000000000000000000000000000000000ff163361010002179055505050565b60606004805461028490610c4b565b60003361031581858561064c565b60055473ffffffffffffffffffffffffffffffffffffffff6101009091041633146104d6576040517f89d1b55f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600554610500908390610100900473ffffffffffffffffffffffffffffffffffffffff168361057d565b61038282826106f7565b6105178383836001610753565b505050565b73ffffffffffffffffffffffffffffffffffffffff8216610571576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6103826000838361089b565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106465781811015610637576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024810182905260448101839052606401610568565b61064684848484036000610753565b50505050565b73ffffffffffffffffffffffffffffffffffffffff831661069c576040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152602401610568565b73ffffffffffffffffffffffffffffffffffffffff82166106ec576040517fec442f0500000000000000000000000000000000000000000000000000000000815260006004820152602401610568565b61051783838361089b565b73ffffffffffffffffffffffffffffffffffffffff8216610747576040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152602401610568565b6103828260008361089b565b73ffffffffffffffffffffffffffffffffffffffff84166107a3576040517fe602df0500000000000000000000000000000000000000000000000000000000815260006004820152602401610568565b73ffffffffffffffffffffffffffffffffffffffff83166107f3576040517f94280d6200000000000000000000000000000000000000000000000000000000815260006004820152602401610568565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526001602090815260408083209387168352929052208290558015610646578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161088d91815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff83166108d35780600260008282546108c89190610e36565b909155506109859050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610959576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024810182905260448101839052606401610568565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff82166109ae576002805482900390556109da565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a3991815260200190565b60405180910390a3505050565b600060208083528351808285015260005b81811015610a7357858101830151858201604001528201610a57565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ad657600080fd5b919050565b60008060408385031215610aee57600080fd5b610af783610ab2565b946020939093013593505050565b600080600060608486031215610b1a57600080fd5b610b2384610ab2565b9250610b3160208501610ab2565b9150604084013590509250925092565b60008083601f840112610b5357600080fd5b50813567ffffffffffffffff811115610b6b57600080fd5b602083019150836020828501011115610b8357600080fd5b9250929050565b60008060008060408587031215610ba057600080fd5b843567ffffffffffffffff80821115610bb857600080fd5b610bc488838901610b41565b90965094506020870135915080821115610bdd57600080fd5b50610bea87828801610b41565b95989497509550505050565b600060208284031215610c0857600080fd5b610c1182610ab2565b9392505050565b60008060408385031215610c2b57600080fd5b610c3483610ab2565b9150610c4260208401610ab2565b90509250929050565b600181811c90821680610c5f57607f821691505b602082108103610c98577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f82111561051757600081815260208120601f850160051c81016020861015610cf45750805b601f850160051c820191505b81811015610d1357828155600101610d00565b505050505050565b67ffffffffffffffff831115610d3357610d33610c9e565b610d4783610d418354610c4b565b83610ccd565b6000601f841160018114610d995760008515610d635750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610e2f565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015610de85786850135825560209485019460019092019101610dc8565b5086821015610e23577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b8082018082111561031b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea264697066735822122075b610d536fa0917f1e44b1eefd49b2d2ca4836cced8c2e7be533837789d788964736f6c63430008140033