UNPKG

@settlemint/solidity-token-erc20-crowdsale

Version:
571 lines (570 loc) 27.4 kB
{ "_format": "hh-sol-artifact-1", "contractName": "ExampleToken", "sourceName": "contracts/ExampleToken.sol", "abi": [ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "uint256", "name": "supply_", "type": "uint256" }, { "internalType": "address", "name": "wallet_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "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" }, { "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": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "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": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "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": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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" } ], "bytecode": "0x6080604052346103d3576111d880380380610019816103d8565b9283398101906080818303126103d35780516001600160401b0381116103d357826100459183016103fd565b602082015190926001600160401b0382116103d3576100659183016103fd565b604082015160609092015190916001600160a01b038216918290036103d35783516001600160401b0381116102dc57600354600181811c911680156103c9575b60208210146102bc57601f8111610364575b50602094601f82116001146102fd579481929394956000926102f2575b50508160011b916000199060031b1c1916176003555b82516001600160401b0381116102dc57600454600181811c911680156102d2575b60208210146102bc57601f8111610257575b506020601f82116001146101f057819293946000926101e5575b50508160011b916000199060031b1c1916176004555b61015633610468565b5081156101cf576002548181018091116101b9576002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060009284845283825260408420818154019055604051908152a3604051610cc190816104f78239f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b600052600060045260246000fd5b015190503880610137565b601f198216906004600052806000209160005b81811061023f57509583600195969710610226575b505050811b0160045561014d565b015160001960f88460031b161c19169055388080610218565b9192602060018192868b015181550194019201610203565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c810191602084106102b2575b601f0160051c01905b8181106102a6575061011d565b60008155600101610299565b9091508190610290565b634e487b7160e01b600052602260045260246000fd5b90607f169061010b565b634e487b7160e01b600052604160045260246000fd5b0151905038806100d4565b601f198216956003600052806000209160005b88811061034c57508360019596979810610333575b505050811b016003556100ea565b015160001960f88460031b161c19169055388080610325565b91926020600181928685015181550194019201610310565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c810191602084106103bf575b601f0160051c01905b8181106103b357506100b7565b600081556001016103a6565b909150819061039d565b90607f16906100a5565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102dc57604052565b81601f820112156103d3578051906001600160401b0382116102dc5761042c601f8301601f19166020016103d8565b92828452602083830101116103d35760005b82811061045357505060206000918301015290565b8060208092840101518282870101520161043e565b6001600160a01b03811660009081526000805160206111b8833981519152602052604090205460ff166104f0576001600160a01b031660008181526000805160206111b883398151915260205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b5060009056fe608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146108135750806306fdde0314610733578063095ea7b3146106a057806318160ddd1461068257806323b872dd146104fc578063248a9ca3146104c75780632f2ff15d14610487578063313ce5671461046b57806336568abe146103ff57806370a08231146103b857806391d148541461035d57806395d89b41146101da578063a217fddf146101be578063a9059cbb1461018d578063d547741f146101465763dd62ed3e146100cf57600080fd5b34610141576040600319360112610141576100e86108fb565b73ffffffffffffffffffffffffffffffffffffffff61010561091e565b9116600052600160205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b600080fd5b346101415760406003193601126101415761018b60043561016561091e565b9061018661018182600052600560205260016040600020015490565b610a6b565b610bb7565b005b34610141576040600319360112610141576101b36101a96108fb565b6024359033610941565b602060405160018152f35b3461014157600060031936011261014157602060405160008152f35b3461014157600060031936011261014157604051600090600454918260011c60018416938415610353575b60208210851461032657839482855290816000146102e45750600114610287575b5003601f01601f191681019067ffffffffffffffff82118183101761025857610254829182604052826108b1565b0390f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6004600090815291507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8183106102c85750508101602001601f19610226565b60209193508060019154838588010152019101909183926102b2565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b84019091019150601f199050610226565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b90607f1690610205565b346101415760406003193601126101415761037661091e565b600435600052600560205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346101415760206003193601126101415773ffffffffffffffffffffffffffffffffffffffff6103e66108fb565b1660005260006020526020604060002054604051908152f35b346101415760406003193601126101415761041861091e565b3373ffffffffffffffffffffffffffffffffffffffff8216036104415761018b90600435610bb7565b7f6697b2320000000000000000000000000000000000000000000000000000000060005260046000fd5b3461014157600060031936011261014157602060405160128152f35b346101415760406003193601126101415761018b6004356104a661091e565b906104c261018182600052600560205260016040600020015490565b610ad8565b346101415760206003193601126101415760206104f4600435600052600560205260016040600020015490565b604051908152f35b34610141576060600319360112610141576105156108fb565b61051d61091e565b6044359073ffffffffffffffffffffffffffffffffffffffff831692836000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff33166000526020526040600020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811061059d575b506101b39350610941565b83811061064c57841561061d5733156105ee576101b3946000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff33166000526020528360406000209103905584610592565b7f94280d6200000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b7fe602df0500000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b83907ffb8f41b2000000000000000000000000000000000000000000000000000000006000523360045260245260445260646000fd5b34610141576000600319360112610141576020600254604051908152f35b34610141576040600319360112610141576106b96108fb565b60243590331561061d5773ffffffffffffffffffffffffffffffffffffffff169081156105ee57336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b3461014157600060031936011261014157604051600090600354918260011c60018416938415610809575b60208210851461032657839482855290816000146102e457506001146107ac575003601f01601f191681019067ffffffffffffffff82118183101761025857610254829182604052826108b1565b6003600090815291507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8183106107ed5750508101602001601f19610226565b60209193508060019154838588010152019101909183926107d7565b90607f169061075e565b3461014157602060031936011261014157600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361014157817f7965db0b0000000000000000000000000000000000000000000000000000000060209314908115610887575b5015158152f35b7f01ffc9a70000000000000000000000000000000000000000000000000000000091501483610880565b9190916020815282519283602083015260005b8481106108e5575050601f19601f8460006040809697860101520116010190565b80602080928401015160408286010152016108c4565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361014157565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361014157565b73ffffffffffffffffffffffffffffffffffffffff16908115610a3c5773ffffffffffffffffffffffffffffffffffffffff16918215610a0d5760008281528060205260408120548281106109da5791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b6064937fe450d38c0000000000000000000000000000000000000000000000000000000083949352600452602452604452fd5b7fec442f0500000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b7f96c6fd1e00000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b806000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff331660005260205260ff6040600020541615610aa75750565b7fe2517d3f000000000000000000000000000000000000000000000000000000006000523360045260245260446000fd5b806000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff6040600020541615600014610bb057806000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff8316600052602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905573ffffffffffffffffffffffffffffffffffffffff339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d600080a4600190565b5050600090565b806000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff60406000205416600014610bb057806000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416905573ffffffffffffffffffffffffffffffffffffffff339216907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b600080a460019056fea264697066735822122038fc9d419e6931dae1732c1d42fd38958c7a289f8162e2c50f47ee23796c16bd64736f6c634300081b003305b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc", "deployedBytecode": "0x608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146108135750806306fdde0314610733578063095ea7b3146106a057806318160ddd1461068257806323b872dd146104fc578063248a9ca3146104c75780632f2ff15d14610487578063313ce5671461046b57806336568abe146103ff57806370a08231146103b857806391d148541461035d57806395d89b41146101da578063a217fddf146101be578063a9059cbb1461018d578063d547741f146101465763dd62ed3e146100cf57600080fd5b34610141576040600319360112610141576100e86108fb565b73ffffffffffffffffffffffffffffffffffffffff61010561091e565b9116600052600160205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b600080fd5b346101415760406003193601126101415761018b60043561016561091e565b9061018661018182600052600560205260016040600020015490565b610a6b565b610bb7565b005b34610141576040600319360112610141576101b36101a96108fb565b6024359033610941565b602060405160018152f35b3461014157600060031936011261014157602060405160008152f35b3461014157600060031936011261014157604051600090600454918260011c60018416938415610353575b60208210851461032657839482855290816000146102e45750600114610287575b5003601f01601f191681019067ffffffffffffffff82118183101761025857610254829182604052826108b1565b0390f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6004600090815291507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8183106102c85750508101602001601f19610226565b60209193508060019154838588010152019101909183926102b2565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b84019091019150601f199050610226565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b90607f1690610205565b346101415760406003193601126101415761037661091e565b600435600052600560205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346101415760206003193601126101415773ffffffffffffffffffffffffffffffffffffffff6103e66108fb565b1660005260006020526020604060002054604051908152f35b346101415760406003193601126101415761041861091e565b3373ffffffffffffffffffffffffffffffffffffffff8216036104415761018b90600435610bb7565b7f6697b2320000000000000000000000000000000000000000000000000000000060005260046000fd5b3461014157600060031936011261014157602060405160128152f35b346101415760406003193601126101415761018b6004356104a661091e565b906104c261018182600052600560205260016040600020015490565b610ad8565b346101415760206003193601126101415760206104f4600435600052600560205260016040600020015490565b604051908152f35b34610141576060600319360112610141576105156108fb565b61051d61091e565b6044359073ffffffffffffffffffffffffffffffffffffffff831692836000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff33166000526020526040600020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811061059d575b506101b39350610941565b83811061064c57841561061d5733156105ee576101b3946000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff33166000526020528360406000209103905584610592565b7f94280d6200000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b7fe602df0500000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b83907ffb8f41b2000000000000000000000000000000000000000000000000000000006000523360045260245260445260646000fd5b34610141576000600319360112610141576020600254604051908152f35b34610141576040600319360112610141576106b96108fb565b60243590331561061d5773ffffffffffffffffffffffffffffffffffffffff169081156105ee57336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b3461014157600060031936011261014157604051600090600354918260011c60018416938415610809575b60208210851461032657839482855290816000146102e457506001146107ac575003601f01601f191681019067ffffffffffffffff82118183101761025857610254829182604052826108b1565b6003600090815291507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8183106107ed5750508101602001601f19610226565b60209193508060019154838588010152019101909183926107d7565b90607f169061075e565b3461014157602060031936011261014157600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361014157817f7965db0b0000000000000000000000000000000000000000000000000000000060209314908115610887575b5015158152f35b7f01ffc9a70000000000000000000000000000000000000000000000000000000091501483610880565b9190916020815282519283602083015260005b8481106108e5575050601f19601f8460006040809697860101520116010190565b80602080928401015160408286010152016108c4565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361014157565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361014157565b73ffffffffffffffffffffffffffffffffffffffff16908115610a3c5773ffffffffffffffffffffffffffffffffffffffff16918215610a0d5760008281528060205260408120548281106109da5791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b6064937fe450d38c0000000000000000000000000000000000000000000000000000000083949352600452602452604452fd5b7fec442f0500000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b7f96c6fd1e00000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b806000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff331660005260205260ff6040600020541615610aa75750565b7fe2517d3f000000000000000000000000000000000000000000000000000000006000523360045260245260446000fd5b806000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff6040600020541615600014610bb057806000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff8316600052602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905573ffffffffffffffffffffffffffffffffffffffff339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d600080a4600190565b5050600090565b806000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff60406000205416600014610bb057806000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416905573ffffffffffffffffffffffffffffffffffffffff339216907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b600080a460019056fea264697066735822122038fc9d419e6931dae1732c1d42fd38958c7a289f8162e2c50f47ee23796c16bd64736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} }