@settlemint/solidity-diamond-bond
Version:
Smart contract set to build an enterprise bond usecase in SettleMint
1 lines • 57.2 kB
JSON
{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"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":"burn","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burnFrom","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"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":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"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":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"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":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"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"}]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60806040523461041857610eed803803806100198161041c565b9283398101906040818303126104185780516001600160401b0381116104185782610045918301610441565b60208201519092906001600160401b038111610418576100659201610441565b81516001600160401b03811161032b57600354600181811c9116801561040e575b602082101461030d57601f81116103ab575b50602092601f821160011461034a57928192935f9261033f575b50508160011b915f199060031b1c1916176003555b80516001600160401b03811161032b57600454600181811c91168015610321575b602082101461030d57601f81116102aa575b50602091601f821160011461024a579181925f9261023f575b50508160011b915f199060031b1c1916176004555b331561022c5760058054610100600160a81b0319811633600881811b610100600160a81b03169290921790935560ff929082901c6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a31661021d5760025469d3c21bcecceda1000000810180911161020957600255335f525f60205260405f2069d3c21bcecceda1000000815401905560405169d3c21bcecceda100000081525f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a3604051610a5a90816104938239f35b634e487b7160e01b5f52601160045260245ffd5b63d93c066560e01b5f5260045ffd5b631e4fbdf760e01b5f525f60045260245ffd5b015190505f80610113565b601f1982169260045f52805f20915f5b8581106102925750836001951061027a575b505050811b01600455610128565b01515f1960f88460031b161c191690555f808061026c565b9192602060018192868501518155019401920161025a565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610303575b601f0160051c01905b8181106102f857506100fa565b5f81556001016102eb565b90915081906102e2565b634e487b7160e01b5f52602260045260245ffd5b90607f16906100e8565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100b2565b601f1982169360035f52805f20915f5b868110610393575083600195961061037b575b505050811b016003556100c7565b01515f1960f88460031b161c191690555f808061036d565b9192602060018192868501518155019401920161035a565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610404575b601f0160051c01905b8181106103f95750610098565b5f81556001016103ec565b90915081906103e3565b90607f1690610086565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761032b57604052565b81601f82011215610418578051906001600160401b03821161032b57610470601f8301601f191660200161041c565b928284526020838301011161041857815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde03146106d957508063095ea7b31461063157806318160ddd1461061457806323b872dd146105dc578063313ce567146105c15780633f4ba83a1461055b57806340c10f19146104a757806342966c681461048a5780635c975abb1461046857806370a0823114610431578063715018a6146103d257806379cc6790146103a05780638456cb59146103475780638da5cb5b1461031b57806395d89b4114610200578063a9059cbb146101cf578063dd62ed3e1461017f5763f2fde38b146100e2575f80fd5b3461017b57602036600319011261017b576100fb6107d2565b610103610953565b6001600160a01b0381169081156101685760058054610100600160a81b03198116600893841b610100600160a81b031617909155901c6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b3461017b57604036600319011261017b576101986107d2565b6101a06107e8565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b3461017b57604036600319011261017b576101f56101eb6107d2565b60243590336108a1565b602060405160018152f35b3461017b575f36600319011261017b576040515f6004548060011c90600181168015610311575b6020831081146102fd578285529081156102e1575060011461028c575b50819003601f01601f191681019067ffffffffffffffff82118183101761027857610274829182604052826107a8565b0390f35b634e487b7160e01b5f52604160045260245ffd5b905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5f905b8282106102cb57506020915082010182610244565b60018160209254838588010152019101906102b6565b90506020925060ff191682840152151560051b82010182610244565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610227565b3461017b575f36600319011261017b5760055460405160089190911c6001600160a01b03168152602090f35b3461017b575f36600319011261017b5761035f610953565b61036761097d565b600160ff1960055416176005557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b3461017b57604036600319011261017b576103d06103bc6107d2565b602435906103cb8233836107fe565b610998565b005b3461017b575f36600319011261017b576103ea610953565b60058054610100600160a81b031981169091555f9060081c6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461017b57602036600319011261017b576001600160a01b036104526107d2565b165f525f602052602060405f2054604051908152f35b3461017b575f36600319011261017b57602060ff600554166040519015158152f35b3461017b57602036600319011261017b576103d060043533610998565b3461017b57604036600319011261017b576104c06107d2565b602435906104cc61097d565b6001600160a01b0316908115610548576104e461097d565b600254908082018092116105345760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915f9360025584845283825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b63ec442f0560e01b5f525f60045260245ffd5b3461017b575f36600319011261017b57610573610953565b60055460ff8116156105b25760ff19166005557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b5f5260045ffd5b3461017b575f36600319011261017b57602060405160128152f35b3461017b57606036600319011261017b576101f56105f86107d2565b6106006107e8565b6044359161060f8333836107fe565b6108a1565b3461017b575f36600319011261017b576020600254604051908152f35b3461017b57604036600319011261017b5761064a6107d2565b6024359033156106c6576001600160a01b03169081156106b357335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b3461017b575f36600319011261017b575f6003548060011c9060018116801561079e575b6020831081146102fd578285529081156102e157506001146107495750819003601f01601f191681019067ffffffffffffffff82118183101761027857610274829182604052826107a8565b905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f905b82821061078857506020915082010182610244565b6001816020925483858801015201910190610773565b91607f16916106fd565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361017b57565b602435906001600160a01b038216820361017b57565b6001600160a01b039081165f818152600160209081526040808320948616835293905291909120549291905f198410610838575b50505050565b82841061087e5780156106c6576001600160a01b038216156106b3575f52600160205260405f209060018060a01b03165f5260205260405f20910390555f808080610832565b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115610940576001600160a01b0316918215610548576108c961097d565b815f525f60205260405f205481811061092757817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b60055460081c6001600160a01b0316330361096a57565b63118cdaa760e01b5f523360045260245ffd5b60ff6005541661098957565b63d93c066560e01b5f5260045ffd5b9091906001600160a01b03168015610940576109b261097d565b805f525f60205260405f2054838110610a0a576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587528684520360408620558060025403600255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffdfea2646970667358221220901524f503272dba2e15bcf138ec6990ebfcc7454588808aadd8b083e681d80364736f6c634300081e0033","sourceMap":"871:1862:2:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;871:1862:2;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;871:1862:2;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;871:1862:2;;;;1648:13:45;871:1862:2;;;;;;;;;;;-1:-1:-1;871:1862:2;;;;;;;;;;;-1:-1:-1;871:1862:2;;;;;;;;;;;;;;-1:-1:-1;871:1862:2;;;;;;;;;;;;;1648:13:45;871:1862:2;;;;;1648:13:45;871:1862:2;;;;-1:-1:-1;;;;;871:1862:2;;;;1671:17:45;871:1862:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;871:1862:2;;;;;;;;;;;;;1648:13:45;871:1862:2;;;;;1671:17:45;871:1862:2;;1033:10;1273:26:40;1269:95;;3004:6;871:1862:2;;-1:-1:-1;;;;;;871:1862:2;;1033:10;871:1862;;;;-1:-1:-1;;;;;871:1862:2;;;;;;;;;;1033:10;871:1862;;;-1:-1:-1;;;;;871:1862:2;3052:40:40;-1:-1:-1;;3052:40:40;871:1862:2;1939:61:54;;6137:21:45;871:1862:2;;;;;;;;;6137:21:45;871:1862:2;1033:10;-1:-1:-1;871:1862:2;-1:-1:-1;871:1862:2;;;-1:-1:-1;871:1862:2;;;;;;;;;;;;-1:-1:-1;6987:25:45;871:1862:2;1033:10;6987:25:45;;871:1862:2;;;;;;;;;;;;;-1:-1:-1;871:1862:2;;1671:17:45;871:1862:2;;-1:-1:-1;871:1862:2;1939:61:54;1974:15;;;-1:-1:-1;1974:15:54;1671:17:45;-1:-1:-1;1974:15:54;1269:95:40;1322:31;;;-1:-1:-1;1322:31:40;-1:-1:-1;1671:17:45;871:1862:2;;-1:-1:-1;1322:31:40;871:1862:2;;;;-1:-1:-1;871:1862:2;;;;;;;;;;1671:17:45;-1:-1:-1;871:1862:2;;-1:-1:-1;871:1862:2;;-1:-1:-1;871:1862:2;;;;;;;;;;;;;;;;;;;;1671:17:45;871:1862:2;;;;;;;;;;1648:13:45;871:1862:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1671:17:45;-1:-1:-1;871:1862:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;871:1862:2;;;;;;;;;-1:-1:-1;871:1862:2;;;;;;;;-1:-1:-1;871:1862:2;;1671:17:45;871:1862:2;;-1:-1:-1;871:1862:2;;;;;;;;;;;;-1:-1:-1;871:1862:2;;1671:17:45;871:1862:2;;-1:-1:-1;871:1862:2;;;;;-1:-1:-1;871:1862:2;;;;;;;;;;1648:13:45;-1:-1:-1;871:1862:2;;-1:-1:-1;871:1862:2;;-1:-1:-1;871:1862:2;;;;;;;;;;;;;;;;;;;;;1648:13:45;871:1862:2;;;;;;;;;;1648:13:45;871:1862:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1648:13:45;-1:-1:-1;871:1862:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;871:1862:2;;;;;;;;;-1:-1:-1;871:1862:2;;;;;;;;;;;;-1:-1:-1;871:1862:2;;;;;;;;;-1:-1:-1;;871:1862:2;;;-1:-1:-1;;;;;871:1862:2;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;871:1862:2;;;;;;;;-1:-1:-1;;871:1862:2;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;871:1862:2;;;;;;;;;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde03146106d957508063095ea7b31461063157806318160ddd1461061457806323b872dd146105dc578063313ce567146105c15780633f4ba83a1461055b57806340c10f19146104a757806342966c681461048a5780635c975abb1461046857806370a0823114610431578063715018a6146103d257806379cc6790146103a05780638456cb59146103475780638da5cb5b1461031b57806395d89b4114610200578063a9059cbb146101cf578063dd62ed3e1461017f5763f2fde38b146100e2575f80fd5b3461017b57602036600319011261017b576100fb6107d2565b610103610953565b6001600160a01b0381169081156101685760058054610100600160a81b03198116600893841b610100600160a81b031617909155901c6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b3461017b57604036600319011261017b576101986107d2565b6101a06107e8565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b3461017b57604036600319011261017b576101f56101eb6107d2565b60243590336108a1565b602060405160018152f35b3461017b575f36600319011261017b576040515f6004548060011c90600181168015610311575b6020831081146102fd578285529081156102e1575060011461028c575b50819003601f01601f191681019067ffffffffffffffff82118183101761027857610274829182604052826107a8565b0390f35b634e487b7160e01b5f52604160045260245ffd5b905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5f905b8282106102cb57506020915082010182610244565b60018160209254838588010152019101906102b6565b90506020925060ff191682840152151560051b82010182610244565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610227565b3461017b575f36600319011261017b5760055460405160089190911c6001600160a01b03168152602090f35b3461017b575f36600319011261017b5761035f610953565b61036761097d565b600160ff1960055416176005557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b3461017b57604036600319011261017b576103d06103bc6107d2565b602435906103cb8233836107fe565b610998565b005b3461017b575f36600319011261017b576103ea610953565b60058054610100600160a81b031981169091555f9060081c6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461017b57602036600319011261017b576001600160a01b036104526107d2565b165f525f602052602060405f2054604051908152f35b3461017b575f36600319011261017b57602060ff600554166040519015158152f35b3461017b57602036600319011261017b576103d060043533610998565b3461017b57604036600319011261017b576104c06107d2565b602435906104cc61097d565b6001600160a01b0316908115610548576104e461097d565b600254908082018092116105345760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915f9360025584845283825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b63ec442f0560e01b5f525f60045260245ffd5b3461017b575f36600319011261017b57610573610953565b60055460ff8116156105b25760ff19166005557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b5f5260045ffd5b3461017b575f36600319011261017b57602060405160128152f35b3461017b57606036600319011261017b576101f56105f86107d2565b6106006107e8565b6044359161060f8333836107fe565b6108a1565b3461017b575f36600319011261017b576020600254604051908152f35b3461017b57604036600319011261017b5761064a6107d2565b6024359033156106c6576001600160a01b03169081156106b357335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b3461017b575f36600319011261017b575f6003548060011c9060018116801561079e575b6020831081146102fd578285529081156102e157506001146107495750819003601f01601f191681019067ffffffffffffffff82118183101761027857610274829182604052826107a8565b905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f905b82821061078857506020915082010182610244565b6001816020925483858801015201910190610773565b91607f16916106fd565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361017b57565b602435906001600160a01b038216820361017b57565b6001600160a01b039081165f818152600160209081526040808320948616835293905291909120549291905f198410610838575b50505050565b82841061087e5780156106c6576001600160a01b038216156106b3575f52600160205260405f209060018060a01b03165f5260205260405f20910390555f808080610832565b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115610940576001600160a01b0316918215610548576108c961097d565b815f525f60205260405f205481811061092757817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b60055460081c6001600160a01b0316330361096a57565b63118cdaa760e01b5f523360045260245ffd5b60ff6005541661098957565b63d93c066560e01b5f5260045ffd5b9091906001600160a01b03168015610940576109b261097d565b805f525f60205260405f2054838110610a0a576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587528684520360408620558060025403600255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffdfea2646970667358221220901524f503272dba2e15bcf138ec6990ebfcc7454588808aadd8b083e681d80364736f6c634300081e0033","sourceMap":"871:1862:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;871:1862:2;;;;;;:::i;:::-;1500:62:40;;:::i;:::-;-1:-1:-1;;;;;871:1862:2;;;2627:22:40;;2623:91;;3004:6;871:1862:2;;-1:-1:-1;;;;;;871:1862:2;;;;;;-1:-1:-1;;;;;871:1862:2;;;;;;;-1:-1:-1;;;;;871:1862:2;3052:40:40;-1:-1:-1;;3052:40:40;871:1862:2;2623:91:40;2672:31;;;871:1862:2;2672:31:40;871:1862:2;;;;;2672:31:40;871:1862:2;;;;;;;;;;-1:-1:-1;;871:1862:2;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;871:1862:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;871:1862:2;;;;3388:5:45;871:1862:2;;:::i;:::-;;;735:10:51;;3388:5:45;:::i;:::-;871:1862:2;;;;;;;;;;;;;-1:-1:-1;;871:1862:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;871:1862:2;;;;;-1:-1:-1;;871:1862:2;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;871:1862:2;;;;1710:6:40;871:1862:2;;;;;;;;-1:-1:-1;;;;;871:1862:2;;;;;;;;;;;;-1:-1:-1;;871:1862:2;;;;1500:62:40;;:::i;:::-;1315:72:54;;:::i;:::-;2408:4;871:1862:2;;2398:14:54;871:1862:2;;;2398:14:54;871:1862:2;2427:20:54;871:1862:2;;;735:10:51;871:1862:2;;2427:20:54;871:1862:2;;;;;;;-1:-1:-1;;871:1862:2;;;;1166:5:47;871:1862:2;;:::i;:::-;;;735:10:51;1135:5:47;735:10:51;;1135:5:47;;:::i;:::-;1166;:::i;:::-;871:1862:2;;;;;;;-1:-1:-1;;871:1862:2;;;;1500:62:40;;:::i;:::-;3004:6;871:1862:2;;-1:-1:-1;;;;;;871:1862:2;;;;;;;;;-1:-1:-1;;;;;871:1862:2;3052:40:40;871:1862:2;;3052:40:40;871:1862:2;;;;;;;-1:-1:-1;;871:1862:2;;;;-1:-1:-1;;;;;871:1862:2;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;871:1862:2;;;;;;1796:7:54;871:1862:2;;;;;;;;;;;;;;;;-1:-1:-1;;871:1862:2;;;;1752:6;871:1862;;735:10:51;1752:6:2;:::i;871:1862::-;;;;;;-1:-1:-1;;871:1862:2;;;;;;:::i;:::-;;;1315:72:54;;;:::i;:::-;-1:-1:-1;;;;;871:1862:2;;7432:21:45;;7428:91;;1315:72:54;;:::i;:::-;6137:21:45;871:1862:2;;;;;;;;;;;6987:25:45;871:1862:2;;;6137:21:45;871:1862:2;;;;;;;;;;;;;;;;;;;;;6987:25:45;871:1862:2;;;;;;;;;;;;;7428:91:45;7476:32;;;871:1862:2;7476:32:45;871:1862:2;;;;;7476:32:45;871:1862:2;;;;;;-1:-1:-1;;871:1862:2;;;;1500:62:40;;:::i;:::-;1796:7:54;871:1862:2;;;;2140:9:54;2136:62;;871:1862:2;;;1796:7:54;871:1862:2;2674:22:54;871:1862:2;;;735:10:51;871:1862:2;;2674:22:54;871:1862:2;2136:62:54;2172:15;;;871:1862:2;2172:15:54;871:1862:2;;2172:15:54;871:1862:2;;;;;;-1:-1:-1;;871:1862:2;;;;;;;2761:2:45;871:1862:2;;;;;;;;;-1:-1:-1;;871:1862:2;;;;4890:5:45;871:1862:2;;:::i;:::-;;;:::i;:::-;;;735:10:51;4854:5:45;735:10:51;;4854:5:45;;:::i;:::-;4890;:::i;871:1862:2:-;;;;;;-1:-1:-1;;871:1862:2;;;;;2881:12:45;871:1862:2;;;;;;;;;;;;;-1:-1:-1;;871:1862:2;;;;;;:::i;:::-;;;735:10:51;;9717:19:45;9713:89;;-1:-1:-1;;;;;871:1862:2;;9815:21:45;;9811:90;;735:10:51;871:1862:2;;;;;;;;;-1:-1:-1;871:1862:2;;;;;-1:-1:-1;871:1862:2;;;;;;;9989:31:45;871:1862:2;735:10:51;9989:31:45;;871:1862:2;;;;;;;9811:90:45;9859:31;;;871:1862:2;9859:31:45;871:1862:2;;;;;9859:31:45;9713:89;9759:32;;;871:1862:2;9759:32:45;871:1862:2;;;;;9759:32:45;871:1862:2;;;;;;-1:-1:-1;;871:1862:2;;;;;1837:5:45;871:1862:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;871:1862:2;;;;;-1:-1:-1;;871:1862:2;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1837:5:45;871:1862:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;871:1862:2;;;;:::o;:::-;;;;-1:-1:-1;;;;;871:1862:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;871:1862:2;;;;;;:::o;10319:476:45:-;-1:-1:-1;;;;;871:1862:2;;;-1:-1:-1;871:1862:2;;;;;;;;;;;;;;;;;;;;;;;;;;10319:476:45;;-1:-1:-1;;10484:36:45;;10480:309;;10319:476;;;;;:::o;10480:309::-;10540:24;;;10536:130;;9717:19;;9713:89;;-1:-1:-1;;;;;871:1862:2;;9815:21:45;9811:90;;-1:-1:-1;871:1862:2;3561:11:45;871:1862:2;;;-1:-1:-1;871:1862:2;9910:27:45;871:1862:2;;;;;;-1:-1:-1;871:1862:2;;;;-1:-1:-1;871:1862:2;;;;;10480:309:45;;;;;;10536:130;10591:60;;;;;;-1:-1:-1;10591:60:45;871:1862:2;;;;;;10591:60:45;871:1862:2;;;;;;-1:-1:-1;10591:60:45;5297:300;-1:-1:-1;;;;;871:1862:2;;5380:18:45;;5376:86;;-1:-1:-1;;;;;871:1862:2;;5475:16:45;;5471:86;;1315:72:54;;:::i;:::-;871:1862:2;5396:1:45;871:1862:2;5396:1:45;871:1862:2;;;5396:1:45;871:1862:2;;6244:19:45;;;6240:115;;871:1862:2;6987:25:45;871:1862:2;;;;5396:1:45;871:1862:2;5396:1:45;871:1862:2;;;;5396:1:45;871:1862:2;;;5396:1:45;871:1862:2;5396:1:45;871:1862:2;;;5396:1:45;871:1862:2;;;;;;;;;;;;6987:25:45;5297:300::o;6240:115::-;6290:50;;;;5396:1;6290:50;;871:1862:2;;;;;;5396:1:45;6290:50;5376:86;5421:30;;;5396:1;5421:30;5396:1;5421:30;871:1862:2;;5396:1:45;5421:30;1796:162:40;1710:6;871:1862:2;;;-1:-1:-1;;;;;871:1862:2;735:10:51;1855:23:40;1851:101;;1796:162::o;1851:101::-;1901:40;;;-1:-1:-1;1901:40:40;735:10:51;1901:40:40;871:1862:2;;-1:-1:-1;1901:40:40;1878:128:54;871:1862:2;1796:7:54;871:1862:2;;1939:61:54;;1878:128::o;1939:61::-;1974:15;;;-1:-1:-1;1974:15:54;;-1:-1:-1;1974:15:54;7888:206:45;;;;-1:-1:-1;;;;;871:1862:2;7958:21:45;;7954:89;;1315:72:54;;:::i;:::-;871:1862:2;7977:1:45;871:1862:2;7977:1:45;871:1862:2;;;7977:1:45;871:1862:2;;6244:19:45;;;6240:115;;871:1862:2;;7977:1:45;871:1862:2;;6987:25:45;871:1862:2;;;;;;;;;;;;;6714:21:45;871:1862:2;;6714:21:45;871:1862:2;;;;;;6987:25:45;7888:206::o;6240:115::-;6290:50;;;;;7977:1;6290:50;;871:1862:2;;;;;;7977:1:45;6290:50","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a"},"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\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"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\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"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.\"}}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"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.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `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.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"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`.\"},\"burn(uint256)\":{\"details\":\"Destroys `amount` tokens from `account`, reducing the total supply. Emits a Transfer event with `to` set to the zero address. Requirements: - `account` cannot be the zero address. - `account` must have at least `amount` tokens.\",\"params\":{\"amount\":\"The amount of tokens to burn from the sender of the transaction, denominated by the decimals() function\"}},\"burnFrom(address,uint256)\":{\"details\":\"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`.\"},\"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}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"details\":\"Pauses all token transfers.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"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`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"details\":\"Unpauses all token transfers.\"}},\"title\":\"GenericToken\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"pause()\":{\"notice\":\"This function can only be called by the contract owner.\"},\"unpause()\":{\"notice\":\"This function can only be called by the contract owner.\"}},\"notice\":\"This contract is a generic token adhering to the ERC20 standard, using the OpenZeppelin template libary for battletested functionality. It incorporates the standard ERC20 functions, enhanced with Minting and Burning, Pausable in case of emergencies and AccessControl for locking down the administrative functions. For demonstrative purposes, 1 million GT tokens are pre-mined to the address deploying this contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/GenericToken.sol\":\"GenericToken\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@prb/math/=node_modules/@prb/math/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"contracts/GenericToken.sol\":{\"keccak256\":\"0xc6ce45fb65f5e74f887c437b33d6b86348b20bf3a108346628bf30d6aa791e57\",\"license\":\"FSL-1.1-MIT\",\"urls\":[\"bzz-raw://355dc3cec66bf23453a8f703833103480b73717be2a1ed39065c2e897be54786\",\"dweb:/ipfs/QmaN7FGBpPPyHRctyXDpSUtMYA6GQjkjNpx2E1n6jrGbEz\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"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/ERC20Burnable.sol\":{\"keccak256\":\"0x2659248df25e34000ed214b3dc8da2160bc39874c992b477d9e2b1b3283dc073\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c345af1b0e7ea28d1216d6a04ab28f5534a5229b9edf9ca3cd0e84950ae58d26\",\"dweb:/ipfs/QmY63jtSrYpLRe8Gj1ep2vMDCKxGNNG3hnNVKBVnrs2nmA\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol\":{\"keccak256\":\"0x756aee61d83960d324973de3a64920a02b480efe662b611fb05ea506d844aa55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dfb71ab2f5fcc530226a25bba4d808f4d22a7f383cae4a3be3629ec057b276c\",\"dweb:/ipfs/QmRzyetUjbr9Gx1pcXYSsE5rz4XypfEbZgmBvZKUNUJQLR\"]},\"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/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]}},\"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"}],"stateMutability":"nonpayable","type":"constructor"},{"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":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"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":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","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":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burnFrom"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"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"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"nonpayable","type":"function","nam