[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "uint256", "name": "totalSupply", "type": "uint256" }, { "internalType": "address", "name": "beneficiary", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "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" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "transfersAllowed", "type": "bool" } ], "name": "TransfersAllowed", "type": "event" }, { "inputs": [], "name": "ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TRANSFER_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": "amount", "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": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "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": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_recipient", "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": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "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": "bool", "name": "_transfersAllowed", "type": "bool" } ], "name": "setTransfersAllowed", "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": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "transfersAllowed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" } ]
60806040526006805460ff191690553480156200001b57600080fd5b5060405162001b4b38038062001b4b8339810160408190526200003e91620004c7565b8351849084906200005790600490602085019062000376565b5080516200006d90600590602084019062000376565b5050506200008281836200011860201b60201c565b620000ae7ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc982620001ec565b620000c960008051602062001b2b83398151915282620001ec565b620000e460008051602062001b0b83398151915282620001ec565b6200010e60008051602062001b2b83398151915260008051602062001b0b833981519152620001fc565b5050505062000653565b6001600160a01b0382166200014a5760405162461bcd60e51b815260040162000141906200059b565b60405180910390fd5b620001586000838362000248565b80600360008282546200016c9190620005db565b90915550506001600160a01b038216600090815260016020526040812080548392906200019b908490620005db565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620001e0908590620005d2565b60405180910390a35050565b620001f88282620002aa565b5050565b80620002088362000334565b60405184907fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff90600090a460009182526020829052604090912060010155565b600654839060ff16806200026357506001600160a01b038116155b806200028557506200028560008051602062001b2b8339815191523362000349565b620002a45760405162461bcd60e51b8152600401620001419062000558565b50505050565b620002b6828262000349565b620001f8576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002f062000372565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60009081526020819052604090206001015490565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b3390565b828054620003849062000600565b90600052602060002090601f016020900481019282620003a85760008555620003f3565b82601f10620003c357805160ff1916838001178555620003f3565b82800160010185558215620003f3579182015b82811115620003f3578251825591602001919060010190620003d6565b506200040192915062000405565b5090565b5b8082111562000401576000815560010162000406565b600082601f8301126200042d578081fd5b81516001600160401b03808211156200044a576200044a6200063d565b6040516020601f8401601f19168201810183811183821017156200047257620004726200063d565b604052838252858401810187101562000489578485fd5b8492505b83831015620004ac57858301810151828401820152918201916200048d565b83831115620004bd57848185840101525b5095945050505050565b60008060008060808587031215620004dd578384fd5b84516001600160401b0380821115620004f4578586fd5b62000502888389016200041c565b9550602087015191508082111562000518578485fd5b5062000527878288016200041c565b60408701516060880151919550935090506001600160a01b03811681146200054d578182fd5b939692955090935050565b60208082526023908201527f526962626f6e546f6b656e3a206e6f207472616e736665722070726976696c6560408201526267657360e81b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b60008219821115620005fb57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200061557607f821691505b602082108114156200063757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6114a880620006636000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806370a08231116100c3578063a9059cbb1161007c578063a9059cbb146102a5578063b0660c3d146102b8578063d5391393146102c0578063d547741f146102c8578063dd62ed3e146102db578063f3cd1c28146102ee57610158565b806370a082311461025457806375b238fc1461026757806391d148541461026f57806395d89b4114610282578063a217fddf1461028a578063a457c2d71461029257610158565b8063248a9ca311610115578063248a9ca3146101de5780632f2ff15d146101f1578063313ce5671461020657806336568abe1461021b578063395093511461022e57806340c10f191461024157610158565b806301ffc9a71461015d57806306fdde0314610186578063095ea7b31461019b57806318160ddd146101ae578063206b60f9146101c357806323b872dd146101cb575b600080fd5b61017061016b366004610f51565b610301565b60405161017d9190610fee565b60405180910390f35b61018e61032e565b60405161017d9190611002565b6101706101a9366004610ece565b6103c0565b6101b66103dd565b60405161017d9190610ff9565b6101b66103e3565b6101706101d9366004610e93565b610407565b6101b66101ec366004610f17565b6104a7565b6102046101ff366004610f2f565b6104bc565b005b61020e6104e5565b60405161017d9190611382565b610204610229366004610f2f565b6104ea565b61017061023c366004610ece565b610530565b61020461024f366004610ece565b61057f565b6101b6610262366004610e47565b6105cf565b6101b66105ea565b61017061027d366004610f2f565b61060e565b61018e610637565b6101b6610646565b6101706102a0366004610ece565b61064b565b6101706102b3366004610ece565b6106c6565b6101706106da565b6101b66106e3565b6102046102d6366004610f2f565b610707565b6101b66102e9366004610e61565b610726565b6102046102fc366004610ef7565b610751565b60006001600160e01b03198216637965db0b60e01b14806103265750610326826107e6565b90505b919050565b60606004805461033d90611421565b80601f016020809104026020016040519081016040528092919081815260200182805461036990611421565b80156103b65780601f1061038b576101008083540402835291602001916103b6565b820191906000526020600020905b81548152906001019060200180831161039957829003601f168201915b5050505050905090565b60006103d46103cd6107ff565b8484610803565b50600192915050565b60035490565b7f9143236d81225394f3bd65b44e6e29fdf4d7ba0773d9bb3f5cc15eb80ba3777781565b60006104148484846108b7565b6001600160a01b0384166000908152600260205260408120816104356107ff565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828110156104815760405162461bcd60e51b8152600401610478906111e6565b60405180910390fd5b61049c8561048d6107ff565b61049786856113c7565b610803565b506001949350505050565b60009081526020819052604090206001015490565b6104c5826104a7565b6104d6816104d16107ff565b6109df565b6104e08383610a43565b505050565b601290565b6104f26107ff565b6001600160a01b0316816001600160a01b0316146105225760405162461bcd60e51b8152600401610478906112fc565b61052c8282610ac8565b5050565b60006103d461053d6107ff565b84846002600061054b6107ff565b6001600160a01b03908116825260208083019390935260409182016000908120918b16815292529020546104979190611390565b6105a97ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc93361060e565b6105c55760405162461bcd60e51b815260040161047890611132565b61052c8282610b4b565b6001600160a01b031660009081526001602052604090205490565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4281565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60606005805461033d90611421565b600081565b6000806002600061065a6107ff565b6001600160a01b03908116825260208083019390935260409182016000908120918816815292529020549050828110156106a65760405162461bcd60e51b8152600401610478906112b7565b6106bc6106b16107ff565b8561049786856113c7565b5060019392505050565b60006103d46106d36107ff565b84846108b7565b60065460ff1681565b7ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc981565b610710826104a7565b61071c816104d16107ff565b6104e08383610ac8565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61077b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec423361060e565b6107975760405162461bcd60e51b8152600401610478906111af565b6006805460ff191682151517908190556040517f5854ddf9a9b69cf8f2802ec78fb8d6bbf299e949955d9361212e652f4fec0e82916107db9160ff90911690610fee565b60405180910390a150565b6001600160e01b031981166301ffc9a760e01b14919050565b3390565b6001600160a01b0383166108295760405162461bcd60e51b815260040161047890611273565b6001600160a01b03821661084f5760405162461bcd60e51b8152600401610478906110f0565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108aa908590610ff9565b60405180910390a3505050565b6001600160a01b0383166108dd5760405162461bcd60e51b81526004016104789061122e565b6001600160a01b0382166109035760405162461bcd60e51b81526004016104789061106a565b61090e838383610c0b565b6001600160a01b038316600090815260016020526040902054818110156109475760405162461bcd60e51b815260040161047890611169565b61095182826113c7565b6001600160a01b038086166000908152600160205260408082209390935590851681529081208054849290610987908490611390565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109d19190610ff9565b60405180910390a350505050565b6109e9828261060e565b61052c57610a01816001600160a01b03166014610c77565b610a0c836020610c77565b604051602001610a1d929190610f79565b60408051601f198184030181529082905262461bcd60e51b825261047891600401611002565b610a4d828261060e565b61052c576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610a846107ff565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610ad2828261060e565b1561052c576000828152602081815260408083206001600160a01b03851684529091529020805460ff19169055610b076107ff565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6001600160a01b038216610b715760405162461bcd60e51b81526004016104789061134b565b610b7d60008383610c0b565b8060036000828254610b8f9190611390565b90915550506001600160a01b03821660009081526001602052604081208054839290610bbc908490611390565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610bff908590610ff9565b60405180910390a35050565b600654839060ff1680610c2557506001600160a01b038116155b80610c555750610c557f9143236d81225394f3bd65b44e6e29fdf4d7ba0773d9bb3f5cc15eb80ba377773361060e565b610c715760405162461bcd60e51b8152600401610478906110ad565b50505050565b60606000610c868360026113a8565b610c91906002611390565b67ffffffffffffffff811115610cb757634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610ce1576020820181803683370190505b509050600360fc1b81600081518110610d0a57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610d4757634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000610d6b8460026113a8565b610d76906001611390565b90505b6001811115610e0a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610db857634e487b7160e01b600052603260045260246000fd5b1a60f81b828281518110610ddc57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93610e038161140a565b9050610d79565b508315610e295760405162461bcd60e51b815260040161047890611035565b9392505050565b80356001600160a01b038116811461032957600080fd5b600060208284031215610e58578081fd5b610e2982610e30565b60008060408385031215610e73578081fd5b610e7c83610e30565b9150610e8a60208401610e30565b90509250929050565b600080600060608486031215610ea7578081fd5b610eb084610e30565b9250610ebe60208501610e30565b9150604084013590509250925092565b60008060408385031215610ee0578182fd5b610ee983610e30565b946020939093013593505050565b600060208284031215610f08578081fd5b81358015158114610e29578182fd5b600060208284031215610f28578081fd5b5035919050565b60008060408385031215610f41578182fd5b82359150610e8a60208401610e30565b600060208284031215610f62578081fd5b81356001600160e01b031981168114610e29578182fd5b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351610fb18160178501602088016113de565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351610fe28160288401602088016113de565b01602801949350505050565b901515815260200190565b90815260200190565b60006020825282518060208401526110218160408501602087016113de565b601f01601f19169190910160400192915050565b6020808252818101527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604082015260600190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526023908201527f526962626f6e546f6b656e3a206e6f207472616e736665722070726976696c6560408201526267657360e81b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526018908201527f526962626f6e546f6b656e3a206f6e6c79206d696e7465720000000000000000604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526017908201527f526962626f6e546f6b656e3a206f6e6c792061646d696e000000000000000000604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b60ff91909116815260200190565b600082198211156113a3576113a361145c565b500190565b60008160001904831182151516156113c2576113c261145c565b500290565b6000828210156113d9576113d961145c565b500390565b60005b838110156113f95781810151838201526020016113e1565b83811115610c715750506000910152565b6000816114195761141961145c565b506000190190565b60028104600182168061143557607f821691505b6020821081141561145657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220cbdf4d24037437ded46f28fea2c5650c1b010d7150ff416b5454d2bebd2d16c064736f6c63430008000033df8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec429143236d81225394f3bd65b44e6e29fdf4d7ba0773d9bb3f5cc15eb80ba37777000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000033b2e3c9fd0803ce8000000000000000000000000000000daeada3d210d2f45874724beea03c7d4bbd416740000000000000000000000000000000000000000000000000000000000000006526962626f6e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000352424e0000000000000000000000000000000000000000000000000000000000