[ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner_", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender_", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount_", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Burn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "module", "type": "address" } ], "name": "ModuleAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "module", "type": "address" } ], "name": "ModuleRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner_", "type": "address" }, { "indexed": true, "internalType": "address", "name": "recipient_", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount_", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "domainSeparator_", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERMIT_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "module_", "type": "address" } ], "name": "addModule", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender_", "type": "address" }, { "internalType": "uint256", "name": "amount_", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "success_", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from_", "type": "address" }, { "internalType": "uint256", "name": "amount_", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender_", "type": "address" }, { "internalType": "uint256", "name": "subtractedAmount_", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "success_", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "globals", "outputs": [ { "internalType": "address", "name": "globals_", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "governor", "outputs": [ { "internalType": "address", "name": "governor_", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "implementation", "outputs": [ { "internalType": "address", "name": "implementation_", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender_", "type": "address" }, { "internalType": "uint256", "name": "addedAmount_", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "success_", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isModule", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner_", "type": "address" }, { "internalType": "address", "name": "spender_", "type": "address" }, { "internalType": "uint256", "name": "amount_", "type": "uint256" }, { "internalType": "uint256", "name": "deadline_", "type": "uint256" }, { "internalType": "uint8", "name": "v_", "type": "uint8" }, { "internalType": "bytes32", "name": "r_", "type": "bytes32" }, { "internalType": "bytes32", "name": "s_", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "module_", "type": "address" } ], "name": "removeModule", "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": "recipient_", "type": "address" }, { "internalType": "uint256", "name": "amount_", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "success_", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner_", "type": "address" }, { "internalType": "address", "name": "recipient_", "type": "address" }, { "internalType": "uint256", "name": "amount_", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "success_", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801561001057600080fd5b50611370806100206000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806342f6e389116100c3578063a06324611161007c578063a0632461146102ec578063a457c2d7146102ff578063a9059cbb14610312578063c312452514610325578063d505accf1461032d578063dd62ed3e1461034057600080fd5b806342f6e389146102665780635c60da1b1461028957806370a08231146102915780637ecebe00146102b157806395d89b41146102d15780639dc29fac146102d957600080fd5b806323b872dd1161011557806323b872dd146101df57806330adf81f146101f2578063313ce567146102195780633644e51514610238578063395093511461024057806340c10f191461025357600080fd5b806306fdde0314610152578063095ea7b3146101705780630c340a241461019357806318160ddd146101b35780631ed86f19146101ca575b600080fd5b61015a61036b565b6040516101679190610fa5565b60405180910390f35b61018361017e36600461100b565b6103f9565b6040519015158152602001610167565b61019b610410565b6040516001600160a01b039091168152602001610167565b6101bc60035481565b604051908152602001610167565b6101dd6101d8366004611037565b610480565b005b6101836101ed36600461105b565b61066b565b6101bc7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6002546102269060ff1681565b60405160ff9091168152602001610167565b6101bc61068d565b61018361024e36600461100b565b61073c565b6101dd61026136600461100b565b610778565b610183610274366004611037565b60076020526000908152604090205460ff1681565b61019b61081a565b6101bc61029f366004611037565b60046020526000908152604090205481565b6101bc6102bf366004611037565b60066020526000908152604090205481565b61015a61084e565b6101dd6102e736600461100b565b61085b565b6101dd6102fa366004611037565b6108f1565b61018361030d36600461100b565b610ad6565b61018361032036600461100b565b610ae3565b61019b610af0565b6101dd61033b36600461109c565b610b20565b6101bc61034e366004611113565b600560209081526000928352604080842090915290825290205481565b600080546103789061114c565b80601f01602080910402602001604051908101604052809291908181526020018280546103a49061114c565b80156103f15780601f106103c6576101008083540402835291602001916103f1565b820191906000526020600020905b8154815290600101906020018083116103d457829003601f168201915b505050505081565b6000610406338484610d9c565b5060015b92915050565b600061041a610af0565b6001600160a01b0316630c340a246040518163ffffffff1660e01b8152600401602060405180830381865afa158015610457573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047b9190611186565b905090565b610488610410565b6001600160a01b0316336001600160a01b0316146104df5760405162461bcd60e51b815260206004820152600f60248201526e26aa1d2727aa2fa3a7ab22a92727a960891b60448201526064015b60405180910390fd5b6c4d543a4144445f4d4f44554c4560981b60006104fa610af0565b90506000816001600160a01b031663fd4c5b373330866000366040518663ffffffff1660e01b81526004016105339594939291906111cc565b602060405180830381865afa158015610550573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610574919061120b565b9050806105b65760405162461bcd60e51b815260206004820152601060248201526f13550e9393d517d4d0d211511553115160821b60448201526064016104d6565b604051635ad5b6f760e11b81526001600160a01b0383169063b5ab6dee906105e99033908790600090369060040161122d565b600060405180830381600087803b15801561060357600080fd5b505af1158015610617573d6000803e3d6000fd5b5050506001600160a01b038516600081815260076020526040808220805460ff19166001179055519192507fead6a006345da1073a106d5f32372d2d2204f46cb0b4bca8f5ebafcbbed12b8a91a250505050565b6000610678843384610dfe565b610683848484610e42565b5060019392505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516106bf919061125f565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610406918590610773908690611314565b610d9c565b3360009081526007602052604090205460ff166107c95760405162461bcd60e51b815260206004820152600f60248201526e4d543a4d3a4e4f545f4d4f44554c4560881b60448201526064016104d6565b6107d38282610ec5565b816001600160a01b03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405161080e91815260200190565b60405180910390a25050565b600061047b61084a60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd611327565b5490565b600180546103789061114c565b3360009081526007602052604090205460ff166108ac5760405162461bcd60e51b815260206004820152600f60248201526e4d543a423a4e4f545f4d4f44554c4560881b60448201526064016104d6565b6108b68282610f31565b816001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405161080e91815260200190565b6108f9610410565b6001600160a01b0316336001600160a01b03161461094b5760405162461bcd60e51b815260206004820152600f60248201526e26aa1d2727aa2fa3a7ab22a92727a960891b60448201526064016104d6565b6f4d543a52454d4f56455f4d4f44554c4560801b6000610969610af0565b90506000816001600160a01b031663fd4c5b373330866000366040518663ffffffff1660e01b81526004016109a29594939291906111cc565b602060405180830381865afa1580156109bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e3919061120b565b905080610a255760405162461bcd60e51b815260206004820152601060248201526f13550e9393d517d4d0d211511553115160821b60448201526064016104d6565b604051635ad5b6f760e11b81526001600160a01b0383169063b5ab6dee90610a589033908790600090369060040161122d565b600060405180830381600087803b158015610a7257600080fd5b505af1158015610a86573d6000803e3d6000fd5b505050506001600160a01b038416600081815260076020526040808220805460ff19169055517f0a1ee69f55c33d8467c69ca59ce2007a737a88603d75392972520bf67cb513b89190a250505050565b6000610406338484610dfe565b6000610406338484610e42565b600061047b61084a60017ff4037508c8ed7f0e515b497cc593e8b40edb624ea4250275737be9ad17ecd743611327565b42841015610b625760405162461bcd60e51b815260206004820152600f60248201526e115490cc8c0e940e91561412549151608a1b60448201526064016104d6565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08111801590610ba257508260ff16601b1480610ba257508260ff16601c145b610be25760405162461bcd60e51b815260206004820152601160248201527045524332303a503a4d414c4c4541424c4560781b60448201526064016104d6565b6000610bec61068d565b6001600160a01b0389811660008181526006602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938c166060840152608083018b905260a083019390935260c08083018a90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015610d05573d6000803e3d6000fd5b505050602060405103519050886001600160a01b0316816001600160a01b0316148015610d3a57506001600160a01b03891615155b610d865760405162461bcd60e51b815260206004820152601960248201527f45524332303a503a494e56414c49445f5349474e41545552450000000000000060448201526064016104d6565b5050610d93878787610d9c565b50505050505050565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038084166000908152600560209081526040808320938616835292905220546000198114610e3c57610e3c84846107738585611327565b50505050565b6001600160a01b03831660009081526004602052604081208054839290610e6a908490611327565b90915550506001600160a01b03808316600081815260046020526040908190208054850190555190918516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610df19085815260200190565b8060036000828254610ed79190611314565b90915550506001600160a01b0382166000818152600460209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6001600160a01b03821660009081526004602052604081208054839290610f59908490611327565b90915550506003805482900390556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610f25565b600060208083528351808285015260005b81811015610fd257858101830151858201604001528201610fb6565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461100857600080fd5b50565b6000806040838503121561101e57600080fd5b823561102981610ff3565b946020939093013593505050565b60006020828403121561104957600080fd5b813561105481610ff3565b9392505050565b60008060006060848603121561107057600080fd5b833561107b81610ff3565b9250602084013561108b81610ff3565b929592945050506040919091013590565b600080600080600080600060e0888a0312156110b757600080fd5b87356110c281610ff3565b965060208801356110d281610ff3565b95506040880135945060608801359350608088013560ff811681146110f657600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561112657600080fd5b823561113181610ff3565b9150602083013561114181610ff3565b809150509250929050565b600181811c9082168061116057607f821691505b60208210810361118057634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561119857600080fd5b815161105481610ff3565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038681168252851660208201526040810184905260806060820181905260009061120090830184866111a3565b979650505050505050565b60006020828403121561121d57600080fd5b8151801515811461105457600080fd5b60018060a01b03851681528360208201526060604082015260006112556060830184866111a3565b9695505050505050565b600080835481600182811c91508083168061127b57607f831692505b6020808410820361129a57634e487b7160e01b86526022600452602486fd5b8180156112ae57600181146112c3576112f0565b60ff19861689528415158502890196506112f0565b60008a81526020902060005b868110156112e85781548b8201529085019083016112cf565b505084890196505b509498975050505050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561040a5761040a6112fe565b8181038181111561040a5761040a6112fe56fea2646970667358221220332b5355ed6d0c86ed9e4c2172ca415c124db5a57345cfaadca0b1d0fab2be5164736f6c63430008120033