{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"supply_","type":"uint256","internalType":"uint256"},{"name":"wallet_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080604052346103bb57610e3080380380610019816103bf565b9283398101906080818303126103bb5780516001600160401b0381116103bb57826100459183016103e4565b602082015190926001600160401b0382116103bb576100659183016103e4565b604082015160609092015190916001600160a01b038216918290036103bb5783516001600160401b0381116102cc57600354600181811c911680156103b1575b60208210146102ae57601f811161034e575b50602094601f82116001146102eb579481929394955f926102e0575b50508160011b915f199060031b1c1916176003555b82516001600160401b0381116102cc57600454600181811c911680156102c2575b60208210146102ae57601f811161024b575b506020601f82116001146101e857819293945f926101dd575b50508160011b915f199060031b1c1916176004555b61015233610435565b5081156101ca57600254908082018092116101b65760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915f9360025584845283825260408420818154019055604051908152a360405161095190816104bf8239f35b634e487b7160e01b5f52601160045260245ffd5b63ec442f0560e01b5f525f60045260245ffd5b015190505f80610134565b601f1982169060045f52805f20915f5b8181106102335750958360019596971061021b575b505050811b01600455610149565b01515f1960f88460031b161c191690555f808061020d565b9192602060018192868b0151815501940192016101f8565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c810191602084106102a4575b601f0160051c01905b818110610299575061011b565b5f815560010161028c565b9091508190610283565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610109565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100d3565b601f1982169560035f52805f20915f5b8881106103365750836001959697981061031e575b505050811b016003556100e8565b01515f1960f88460031b161c191690555f8080610310565b919260206001819286850151815501940192016102fb565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c810191602084106103a7575b601f0160051c01905b81811061039c57506100b7565b5f815560010161038f565b9091508190610386565b90607f16906100a5565b5f80fd5b6040519190601f01601f191682016001600160401b038111838210176102cc57604052565b81601f820112156103bb578051906001600160401b0382116102cc57610413601f8301601f19166020016103bf565b92828452602083830101116103bb57815f9260208093018386015e8301015290565b6001600160a01b0381165f9081525f516020610e105f395f51905f52602052604090205460ff166104b9576001600160a01b03165f8181525f516020610e105f395f51905f5260205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b505f9056fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461066b5750806306fdde0314610599578063095ea7b31461051757806318160ddd146104fa57806323b872dd1461041b578063248a9ca3146103e85780632f2ff15d146103aa578063313ce5671461038f57806336568abe1461034b57806370a082311461031457806391d14854146102cb57806395d89b41146101b0578063a217fddf14610196578063a9059cbb14610165578063d547741f146101205763dd62ed3e146100cc575f80fd5b3461011c57604036600319011261011c576100e56106e8565b6100ed6106fe565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b5f80fd5b3461011c57604036600319011261011c5761016360043561013f6106fe565b9061015e610159825f526005602052600160405f20015490565b6107d1565b610897565b005b3461011c57604036600319011261011c5761018b6101816106e8565b6024359033610714565b602060405160018152f35b3461011c575f36600319011261011c5760206040515f8152f35b3461011c575f36600319011261011c576040515f6004548060011c906001811680156102c1575b6020831081146102ad57828552908115610291575060011461023c575b50819003601f01601f191681019067ffffffffffffffff82118183101761022857610224829182604052826106be565b0390f35b634e487b7160e01b5f52604160045260245ffd5b905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5f905b82821061027b575060209150820101826101f4565b6001816020925483858801015201910190610266565b90506020925060ff191682840152151560051b820101826101f4565b634e487b7160e01b5f52602260045260245ffd5b91607f16916101d7565b3461011c57604036600319011261011c576102e46106fe565b6004355f52600560205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b3461011c57602036600319011261011c576001600160a01b036103356106e8565b165f525f602052602060405f2054604051908152f35b3461011c57604036600319011261011c576103646106fe565b336001600160a01b038216036103805761016390600435610897565b63334bd91960e11b5f5260045ffd5b3461011c575f36600319011261011c57602060405160128152f35b3461011c57604036600319011261011c576101636004356103c96106fe565b906103e3610159825f526005602052600160405f20015490565b61080b565b3461011c57602036600319011261011c5760206104136004355f526005602052600160405f20015490565b604051908152f35b3461011c57606036600319011261011c576104346106e8565b61043c6106fe565b6001600160a01b0382165f818152600160209081526040808320338452909152902054909260443592915f19811061047a575b5061018b9350610714565b8381106104df5784156104cc5733156104b95761018b945f52600160205260405f2060018060a01b0333165f526020528360405f20910390558461046f565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b8390637dc7a0d960e11b5f523360045260245260445260645ffd5b3461011c575f36600319011261011c576020600254604051908152f35b3461011c57604036600319011261011c576105306106e8565b6024359033156104cc576001600160a01b03169081156104b957335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b3461011c575f36600319011261011c576040515f6003548060011c90600181168015610661575b6020831081146102ad57828552908115610291575060011461060c5750819003601f01601f191681019067ffffffffffffffff82118183101761022857610224829182604052826106be565b905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f905b82821061064b575060209150820101826101f4565b6001816020925483858801015201910190610636565b91607f16916105c0565b3461011c57602036600319011261011c576004359063ffffffff60e01b821680920361011c57602091637965db0b60e01b81149081156106ad575b5015158152f35b6301ffc9a760e01b149050836106a6565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361011c57565b602435906001600160a01b038216820361011c57565b6001600160a01b03169081156107be576001600160a01b03169182156107ab57815f525f60205260405f205481811061079257817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f81815260056020908152604080832033845290915290205460ff16156107f55750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f8181526005602090815260408083206001600160a01b038616845290915290205460ff16610891575f8181526005602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f8181526005602090815260408083206001600160a01b038616845290915290205460ff1615610891575f8181526005602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a460019056fea26469706673582212209ea92edc8f63b3335fa658d1bfae3249f50dca1adf85668aba2ab13dcd24158c64736f6c634300081e003305b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc","sourceMap":"320:545:1:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;320:545:1;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;320:545:1;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;320:545:1;;;;;;;;;;-1:-1:-1;;;;;320:545:1;;;;1648:13:37;320:545:1;;;;;;;;;;;-1:-1:-1;320:545:1;;;;;;;;;;;-1:-1:-1;320:545:1;;;;;;;;;;;;;;;;-1:-1:-1;320:545:1;;;;;;;;;;;;;1648:13:37;320:545:1;;;;;1648:13:37;320:545:1;;;;-1:-1:-1;;;;;320:545:1;;;;1671:17:37;320:545:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;320:545:1;;;;;;;;;;;;;1648:13:37;320:545:1;;;;;1671:17:37;320:545:1;;502:44;735:10:42;502:44:1;:::i;:::-;;7432:21:37;;7428:91;;6137:21;320:545:1;;;;;;;;;;;6987:25:37;320:545:1;-1:-1:-1;320:545:1;6137:21:37;320:545:1;;;;;;;;;;;;;;;;;;;;;6987:25:37;320:545:1;;;;;;;;;;;;;-1:-1:-1;320:545:1;;1671:17:37;320:545:1;;-1:-1:-1;320:545:1;7428:91:37;7476:32;;;-1:-1:-1;7476:32:37;-1:-1:-1;1671:17:37;320:545:1;;-1:-1:-1;7476:32:37;320:545:1;;;;-1:-1:-1;320:545:1;;;;;;;;;;1671:17:37;-1:-1:-1;320:545:1;;-1:-1:-1;320:545:1;;-1:-1:-1;320:545:1;;;;;;;;;;;;;;;;;;;;;;;1671:17:37;320:545:1;;;;;;;;;;1648:13:37;320:545:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1671:17:37;-1:-1:-1;320:545:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;320:545:1;;;;;;;;;-1:-1:-1;320:545:1;;;;;;;;-1:-1:-1;320:545:1;;1671:17:37;320:545:1;;-1:-1:-1;320:545:1;;;;;;;;;;;;-1:-1:-1;320:545:1;;1671:17:37;320:545:1;;-1:-1:-1;320:545:1;;;;;-1:-1:-1;320:545:1;;;;;;;;;;1648:13:37;-1:-1:-1;320:545:1;;-1:-1:-1;320:545:1;;-1:-1:-1;320:545:1;;;;;;;;;;;;;;;;;;;;;;;1648:13:37;320:545:1;;;;;;;;;;1648:13:37;320:545:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1648:13:37;-1:-1:-1;320:545:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;320:545:1;;;;;;;;;-1:-1:-1;320:545:1;;;;;;;;;;;;-1:-1:-1;320:545:1;;;;;;;;;-1:-1:-1;;320:545:1;;;-1:-1:-1;;;;;320:545:1;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;320:545:1;;;;;;;;-1:-1:-1;;320:545:1;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;320:545:1;;;;;;;;;;;;;;:::o;6155:316:29:-;-1:-1:-1;;;;;320:545:1;;;;;;-1:-1:-1;;;;;;;;;;;320:545:1;;;;;;;;;;-1:-1:-1;;;;;320:545:1;;;;;-1:-1:-1;;;;;;;;;;;320:545:1;;;;;;;-1:-1:-1;;320:545:1;;;;;735:10:42;;320:545:1;6346:40:29;320:545:1;;6346:40:29;6323:4;6400:11;:::o;6248:217::-;6442:12;320:545:1;6442:12:29;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461066b5750806306fdde0314610599578063095ea7b31461051757806318160ddd146104fa57806323b872dd1461041b578063248a9ca3146103e85780632f2ff15d146103aa578063313ce5671461038f57806336568abe1461034b57806370a082311461031457806391d14854146102cb57806395d89b41146101b0578063a217fddf14610196578063a9059cbb14610165578063d547741f146101205763dd62ed3e146100cc575f80fd5b3461011c57604036600319011261011c576100e56106e8565b6100ed6106fe565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b5f80fd5b3461011c57604036600319011261011c5761016360043561013f6106fe565b9061015e610159825f526005602052600160405f20015490565b6107d1565b610897565b005b3461011c57604036600319011261011c5761018b6101816106e8565b6024359033610714565b602060405160018152f35b3461011c575f36600319011261011c5760206040515f8152f35b3461011c575f36600319011261011c576040515f6004548060011c906001811680156102c1575b6020831081146102ad57828552908115610291575060011461023c575b50819003601f01601f191681019067ffffffffffffffff82118183101761022857610224829182604052826106be565b0390f35b634e487b7160e01b5f52604160045260245ffd5b905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5f905b82821061027b575060209150820101826101f4565b6001816020925483858801015201910190610266565b90506020925060ff191682840152151560051b820101826101f4565b634e487b7160e01b5f52602260045260245ffd5b91607f16916101d7565b3461011c57604036600319011261011c576102e46106fe565b6004355f52600560205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b3461011c57602036600319011261011c576001600160a01b036103356106e8565b165f525f602052602060405f2054604051908152f35b3461011c57604036600319011261011c576103646106fe565b336001600160a01b038216036103805761016390600435610897565b63334bd91960e11b5f5260045ffd5b3461011c575f36600319011261011c57602060405160128152f35b3461011c57604036600319011261011c576101636004356103c96106fe565b906103e3610159825f526005602052600160405f20015490565b61080b565b3461011c57602036600319011261011c5760206104136004355f526005602052600160405f20015490565b604051908152f35b3461011c57606036600319011261011c576104346106e8565b61043c6106fe565b6001600160a01b0382165f818152600160209081526040808320338452909152902054909260443592915f19811061047a575b5061018b9350610714565b8381106104df5784156104cc5733156104b95761018b945f52600160205260405f2060018060a01b0333165f526020528360405f20910390558461046f565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b8390637dc7a0d960e11b5f523360045260245260445260645ffd5b3461011c575f36600319011261011c576020600254604051908152f35b3461011c57604036600319011261011c576105306106e8565b6024359033156104cc576001600160a01b03169081156104b957335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b3461011c575f36600319011261011c576040515f6003548060011c90600181168015610661575b6020831081146102ad57828552908115610291575060011461060c5750819003601f01601f191681019067ffffffffffffffff82118183101761022857610224829182604052826106be565b905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f905b82821061064b575060209150820101826101f4565b6001816020925483858801015201910190610636565b91607f16916105c0565b3461011c57602036600319011261011c576004359063ffffffff60e01b821680920361011c57602091637965db0b60e01b81149081156106ad575b5015158152f35b6301ffc9a760e01b149050836106a6565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361011c57565b602435906001600160a01b038216820361011c57565b6001600160a01b03169081156107be576001600160a01b03169182156107ab57815f525f60205260405f205481811061079257817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f81815260056020908152604080832033845290915290205460ff16156107f55750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f8181526005602090815260408083206001600160a01b038616845290915290205460ff16610891575f8181526005602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f8181526005602090815260408083206001600160a01b038616845290915290205460ff1615610891575f8181526005602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a460019056fea26469706673582212209ea92edc8f63b3335fa658d1bfae3249f50dca1adf85668aba2ab13dcd24158c64736f6c634300081e0033","sourceMap":"320:545:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;320:545:1;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;320:545:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;320:545:1;;;;4723:26:29;320:545:1;;;;:::i;:::-;4693:18:29;2484:4;4693:18;;-1:-1:-1;320:545:1;3877:6:29;320:545:1;;3877:22:29;320:545:1;-1:-1:-1;320:545:1;3877:22:29;320:545:1;3786:120:29;;4693:18;2484:4;:::i;:::-;4723:26;:::i;:::-;320:545:1;;;;;;;-1:-1:-1;;320:545:1;;;;3388:5:37;320:545:1;;:::i;:::-;;;735:10:42;;3388:5:37;:::i;:::-;320:545:1;;;;;;;;;;;;;-1:-1:-1;;320:545:1;;;;;;;;;;;;;;;;;-1:-1:-1;;320:545:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;320:545:1;;;;;-1:-1:-1;;320:545:1;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;320:545:1;;;;;;:::i;:::-;;;;;2930:6:29;320:545:1;;;;;2930:29:29;320:545:1;;;;;;-1:-1:-1;320:545:1;;;;;;-1:-1:-1;320:545:1;;;;;;;;;;;;;;;;;-1:-1:-1;;320:545:1;;;;-1:-1:-1;;;;;320:545:1;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;320:545:1;;;;;;:::i;:::-;735:10:42;-1:-1:-1;;;;;320:545:1;;5397:34:29;5393:102;;5505:37;320:545:1;;;5505:37:29;:::i;5393:102::-;5454:30;;;320:545:1;5454:30:29;320:545:1;;5454:30:29;320:545:1;;;;;;-1:-1:-1;;320:545:1;;;;;;;2761:2:37;320:545:1;;;;;;;;;-1:-1:-1;;320:545:1;;;;4306:25:29;320:545:1;;;;:::i;:::-;4276:18:29;2484:4;4276:18;;-1:-1:-1;320:545:1;3877:6:29;320:545:1;;3877:22:29;320:545:1;-1:-1:-1;320:545:1;3877:22:29;320:545:1;3786:120:29;;2484:4;4306:25;:::i;320:545:1:-;;;;;;-1:-1:-1;;320:545:1;;;;;;;;-1:-1:-1;320:545:1;3877:6:29;320:545:1;;3877:22:29;320:545:1;-1:-1:-1;320:545:1;3877:22:29;320:545:1;3786:120:29;;320:545:1;;;;;;;;;;;;;-1:-1:-1;;320:545:1;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;320:545:1;;;;;;;;;;;;;;;735:10:42;320:545:1;;;;;;;;;;;;;;-1:-1:-1;;10484:36:37;;10480:309;;320:545:1;4890:5:37;;;;;:::i;10480:309::-;10540:24;;;10536:130;;9717:19;;9713:89;;735:10:42;9815:21:37;9811:90;;4890:5;320:545:1;;;;;;;;;;;;;;735:10:42;320:545:1;-1:-1:-1;320:545:1;;;;;-1:-1:-1;320:545:1;;;;;10480:309:37;;;9811:90;9859:31;;;320:545:1;9859:31:37;320:545:1;;;;;9859:31:37;9713:89;9759:32;;;320:545:1;9759:32:37;320:545:1;;;;;9759:32:37;10536:130;10591:60;;;;;320:545:1;10591:60:37;735:10:42;320:545:1;;;;;;;;10591:60:37;320:545:1;;;;;;-1:-1:-1;;320:545:1;;;;;2881:12:37;320:545:1;;;;;;;;;;;;;-1:-1:-1;;320:545:1;;;;;;:::i;:::-;;;735:10:42;;9717:19:37;9713:89;;-1:-1:-1;;;;;320:545:1;;9815:21:37;;9811:90;;735:10:42;320:545:1;;;;;;;;;-1:-1:-1;320:545:1;;;;;-1:-1:-1;320:545:1;;;;;;;9989:31:37;320:545:1;735:10:42;9989:31:37;;320:545:1;;;;;;;;;;;;;-1:-1:-1;;320:545:1;;;;;;;1837:5:37;320:545:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;320:545:1;;;;;-1:-1:-1;;320:545:1;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1837:5:37;320:545:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;320:545:1;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2649:47:29;;;:87;;;;320:545:1;;;;;;;2649:87:29;-1:-1:-1;;;829:40:46;;-1:-1:-1;2649:87:29;;;320:545:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;320:545:1;;;;:::o;:::-;;;;-1:-1:-1;;;;;320:545:1;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;320:545:1;;;;;;:::o;5297:300:37:-;-1:-1:-1;;;;;320:545:1;;5380:18:37;;5376:86;;-1:-1:-1;;;;;320:545:1;;5475:16:37;;5471:86;;320:545:1;5396:1:37;320:545:1;5396:1:37;320:545:1;;;5396:1:37;320:545:1;;6244:19:37;;;6240:115;;320:545:1;6987:25:37;320:545:1;;;;5396:1:37;320:545:1;5396:1:37;320:545:1;;;;5396:1:37;320:545:1;;;5396:1:37;320:545:1;5396:1:37;320:545:1;;;5396:1:37;320:545:1;;;;;;;;;;;;6987:25:37;5297:300::o;6240:115::-;6290:50;;;;5396:1;6290:50;;320:545:1;;;;;;5396:1:37;6290:50;5471:86;5514:32;;;5396:1;5514:32;5396:1;5514:32;320:545:1;;5396:1:37;5514:32;5376:86;5421:30;;;5396:1;5421:30;5396:1;5421:30;320:545:1;;5396:1:37;5421:30;3175:103:29;-1:-1:-1;320:545:1;;;2930:6:29;320:545:1;;;;;;;;735:10:42;320:545:1;;;;;;;;;;3495:23:29;3491:108;;3175:103;:::o;3491:108::-;3541:47;;;-1:-1:-1;3541:47:29;735:10:42;3541:47:29;320:545:1;;;;-1:-1:-1;3541:47:29;6155:316;320:545:1;;;;2930:6:29;320:545:1;;;;;;;;-1:-1:-1;;;;;320:545:1;;;;;;;;;;;;;;;;;;2930:6:29;320:545:1;;;;;;;;-1:-1:-1;;;;;320:545:1;;;;;;;;;;;;;;;-1:-1:-1;;320:545:1;;;;;735:10:42;;320:545:1;;6346:40:29;;320:545:1;6346:40:29;6323:4;6400:11;:::o;6248:217::-;6442:12;;320:545:1;6442:12:29;:::o;6708:317::-;320:545:1;;;;2930:6:29;320:545:1;;;;;;;;-1:-1:-1;;;;;320:545:1;;;;;;;;;;;;;;;;;;;2930:6:29;320:545:1;;;;;;;;-1:-1:-1;;;;;320:545:1;;;;;;;;;;;;;;;-1:-1:-1;;320:545:1;;;735:10:42;;320:545:1;;6900:40:29;;320:545:1;6900:40:29;320:545:1;6954:11:29;:::o","linkReferences":{}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","name()":"06fdde03","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"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\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ExampleToken.sol\":\"ExampleToken\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"contracts/ExampleToken.sol\":{\"keccak256\":\"0x66143fbb4c2d4762ff31e54e847abdb58620d26f6a09412b1e0555ea42c70710\",\"license\":\"FSL-1.1-MIT\",\"urls\":[\"bzz-raw://9f47bdf8ba57b04931646165a5a9214d3a1022655928776f519d1b2d2ea90891\",\"dweb:/ipfs/QmYCUzS9iciRarvQ7AxDBAZZDqagtLU3HZTh8bpHXP5hTB\"]},\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x1a6b4f6b7798ab80929d491b89d5427a9b3338c0fd1acd0ba325f69c6f1646af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bb7f346c12a14dc622bc105ce3c47202fbc89f4b153a28a63bb68193297330c\",\"dweb:/ipfs/QmagwF8P3bUBXwdo159ueEnY9dLSvEWwK24kk2op58egwG\"]},\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x19fdfb0f3b89a230e7dbd1cf416f1a6b531a3ee5db4da483f946320fc74afc0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3490d794728f5bfecb46820431adaff71ba374141545ec20b650bb60353fac23\",\"dweb:/ipfs/QmPsfxjVpMcZbpE7BH93DzTpEaktESigEw4SmDzkXuJ4WR\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x86b7b71a6aedefdad89b607378eeab1dcc5389b9ea7d17346d08af01d7190994\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1dc2db8d94a21eac8efe03adf574c419b08536409b416057a2b5b95cb772c43c\",\"dweb:/ipfs/QmZfqJCKVU1ScuX2A7s8WZdQEaikwJbDH5JBrBdKTUT4Gu\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"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":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"name()":{"details":"Returns the name of the token."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/ExampleToken.sol":"ExampleToken"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/ExampleToken.sol":{"keccak256":"0x66143fbb4c2d4762ff31e54e847abdb58620d26f6a09412b1e0555ea42c70710","urls":["bzz-raw://9f47bdf8ba57b04931646165a5a9214d3a1022655928776f519d1b2d2ea90891","dweb:/ipfs/QmYCUzS9iciRarvQ7AxDBAZZDqagtLU3HZTh8bpHXP5hTB"],"license":"FSL-1.1-MIT"},"node_modules/@openzeppelin/contracts/access/AccessControl.sol":{"keccak256":"0x1a6b4f6b7798ab80929d491b89d5427a9b3338c0fd1acd0ba325f69c6f1646af","urls":["bzz-raw://7bb7f346c12a14dc622bc105ce3c47202fbc89f4b153a28a63bb68193297330c","dweb:/ipfs/QmagwF8P3bUBXwdo159ueEnY9dLSvEWwK24kk2op58egwG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":{"keccak256":"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c","urls":["bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d","dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x19fdfb0f3b89a230e7dbd1cf416f1a6b531a3ee5db4da483f946320fc74afc0e","urls":["bzz-raw://3490d794728f5bfecb46820431adaff71ba374141545ec20b650bb60353fac23","dweb:/ipfs/QmPsfxjVpMcZbpE7BH93DzTpEaktESigEw4SmDzkXuJ4WR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x86b7b71a6aedefdad89b607378eeab1dcc5389b9ea7d17346d08af01d7190994","urls":["bzz-raw://1dc2db8d94a21eac8efe03adf574c419b08536409b416057a2b5b95cb772c43c","dweb:/ipfs/QmZfqJCKVU1ScuX2A7s8WZdQEaikwJbDH5JBrBdKTUT4Gu"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e","urls":["bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377","dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"}},"version":1},"id":1}