[
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "mToken_",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "migrationAdmin_",
                "type": "address"
            }
        ],
        "stateMutability": "nonpayable",
        "type": "constructor"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "authorizer",
                "type": "address"
            },
            {
                "internalType": "bytes32",
                "name": "nonce",
                "type": "bytes32"
            }
        ],
        "name": "AuthorizationAlreadyUsed",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "timestamp",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "validBefore",
                "type": "uint256"
            }
        ],
        "name": "AuthorizationExpired",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "timestamp",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "validAfter",
                "type": "uint256"
            }
        ],
        "name": "AuthorizationNotYetValid",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "caller",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "payee",
                "type": "address"
            }
        ],
        "name": "CallerMustBePayee",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "DivisionByZero",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "EarningCannotBeReenabled",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "EarningIsDisabled",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "EarningIsEnabled",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "spender",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "allowance",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "needed",
                "type": "uint256"
            }
        ],
        "name": "InsufficientAllowance",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "amount",
                "type": "uint256"
            }
        ],
        "name": "InsufficientAmount",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "account",
                "type": "address"
            },
            {
                "internalType": "uint240",
                "name": "balance",
                "type": "uint240"
            },
            {
                "internalType": "uint240",
                "name": "amount",
                "type": "uint240"
            }
        ],
        "name": "InsufficientBalance",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "nonce",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "expectedNonce",
                "type": "uint256"
            }
        ],
        "name": "InvalidAccountNonce",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "InvalidMigrator",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "recipient",
                "type": "address"
            }
        ],
        "name": "InvalidRecipient",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "InvalidSignature",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "InvalidSignatureLength",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "InvalidSignatureS",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "InvalidSignatureV",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "InvalidUInt112",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "InvalidUInt240",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "IsApprovedEarner",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "MigrationFailed",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "NotApprovedEarner",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "deadline",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "timestamp",
                "type": "uint256"
            }
        ],
        "name": "SignatureExpired",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "SignerMismatch",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "UnauthorizedMigration",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "ZeroMToken",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "ZeroMigrationAdmin",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "ZeroMigrator",
        "type": "error"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "account",
                "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": "authorizer",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "bytes32",
                "name": "nonce",
                "type": "bytes32"
            }
        ],
        "name": "AuthorizationCanceled",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "authorizer",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "bytes32",
                "name": "nonce",
                "type": "bytes32"
            }
        ],
        "name": "AuthorizationUsed",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "account",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "address",
                "name": "recipient",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "uint240",
                "name": "yield",
                "type": "uint240"
            }
        ],
        "name": "Claimed",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [],
        "name": "EIP712DomainChanged",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "uint128",
                "name": "index",
                "type": "uint128"
            }
        ],
        "name": "EarningDisabled",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "uint128",
                "name": "index",
                "type": "uint128"
            }
        ],
        "name": "EarningEnabled",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "uint240",
                "name": "excess",
                "type": "uint240"
            }
        ],
        "name": "ExcessClaimed",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "migrator",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "address",
                "name": "oldImplementation",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "address",
                "name": "newImplementation",
                "type": "address"
            }
        ],
        "name": "Migrated",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "account",
                "type": "address"
            }
        ],
        "name": "StartedEarning",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "account",
                "type": "address"
            }
        ],
        "name": "StoppedEarning",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "sender",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "address",
                "name": "recipient",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "amount",
                "type": "uint256"
            }
        ],
        "name": "Transfer",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "implementation",
                "type": "address"
            }
        ],
        "name": "Upgraded",
        "type": "event"
    },
    {
        "inputs": [],
        "name": "CANCEL_AUTHORIZATION_TYPEHASH",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "DOMAIN_SEPARATOR",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "PERMIT_TYPEHASH",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "RECEIVE_WITH_AUTHORIZATION_TYPEHASH",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "TRANSFER_WITH_AUTHORIZATION_TYPEHASH",
        "outputs": [
            {
                "internalType": "bytes32",
                "name": "",
                "type": "bytes32"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "account_",
                "type": "address"
            }
        ],
        "name": "accruedYieldOf",
        "outputs": [
            {
                "internalType": "uint240",
                "name": "yield_",
                "type": "uint240"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "account",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "spender",
                "type": "address"
            }
        ],
        "name": "allowance",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "allowance",
                "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": "authorizer",
                "type": "address"
            },
            {
                "internalType": "bytes32",
                "name": "nonce",
                "type": "bytes32"
            }
        ],
        "name": "authorizationState",
        "outputs": [
            {
                "internalType": "bool",
                "name": "isNonceUsed",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "account_",
                "type": "address"
            }
        ],
        "name": "balanceOf",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "balance_",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "account_",
                "type": "address"
            }
        ],
        "name": "balanceWithYieldOf",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "balance_",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "authorizer_",
                "type": "address"
            },
            {
                "internalType": "bytes32",
                "name": "nonce_",
                "type": "bytes32"
            },
            {
                "internalType": "bytes32",
                "name": "r_",
                "type": "bytes32"
            },
            {
                "internalType": "bytes32",
                "name": "vs_",
                "type": "bytes32"
            }
        ],
        "name": "cancelAuthorization",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "authorizer_",
                "type": "address"
            },
            {
                "internalType": "bytes32",
                "name": "nonce_",
                "type": "bytes32"
            },
            {
                "internalType": "uint8",
                "name": "v_",
                "type": "uint8"
            },
            {
                "internalType": "bytes32",
                "name": "r_",
                "type": "bytes32"
            },
            {
                "internalType": "bytes32",
                "name": "s_",
                "type": "bytes32"
            }
        ],
        "name": "cancelAuthorization",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "authorizer_",
                "type": "address"
            },
            {
                "internalType": "bytes32",
                "name": "nonce_",
                "type": "bytes32"
            },
            {
                "internalType": "bytes",
                "name": "signature_",
                "type": "bytes"
            }
        ],
        "name": "cancelAuthorization",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "claimExcess",
        "outputs": [
            {
                "internalType": "uint240",
                "name": "excess_",
                "type": "uint240"
            }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "account_",
                "type": "address"
            }
        ],
        "name": "claimFor",
        "outputs": [
            {
                "internalType": "uint240",
                "name": "yield_",
                "type": "uint240"
            }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "account_",
                "type": "address"
            }
        ],
        "name": "claimOverrideRecipientFor",
        "outputs": [
            {
                "internalType": "address",
                "name": "recipient_",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "currentIndex",
        "outputs": [
            {
                "internalType": "uint128",
                "name": "index_",
                "type": "uint128"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "decimals",
        "outputs": [
            {
                "internalType": "uint8",
                "name": "",
                "type": "uint8"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "disableEarning",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "eip712Domain",
        "outputs": [
            {
                "internalType": "bytes1",
                "name": "fields_",
                "type": "bytes1"
            },
            {
                "internalType": "string",
                "name": "name_",
                "type": "string"
            },
            {
                "internalType": "string",
                "name": "version_",
                "type": "string"
            },
            {
                "internalType": "uint256",
                "name": "chainId_",
                "type": "uint256"
            },
            {
                "internalType": "address",
                "name": "verifyingContract_",
                "type": "address"
            },
            {
                "internalType": "bytes32",
                "name": "salt_",
                "type": "bytes32"
            },
            {
                "internalType": "uint256[]",
                "name": "extensions_",
                "type": "uint256[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "enableEarning",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "excess",
        "outputs": [
            {
                "internalType": "uint240",
                "name": "excess_",
                "type": "uint240"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "implementation",
        "outputs": [
            {
                "internalType": "address",
                "name": "implementation_",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "account_",
                "type": "address"
            }
        ],
        "name": "isEarning",
        "outputs": [
            {
                "internalType": "bool",
                "name": "isEarning_",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "isEarningEnabled",
        "outputs": [
            {
                "internalType": "bool",
                "name": "isEnabled_",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "account_",
                "type": "address"
            }
        ],
        "name": "lastIndexOf",
        "outputs": [
            {
                "internalType": "uint128",
                "name": "lastIndex_",
                "type": "uint128"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "mToken",
        "outputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "migrate",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "migrator_",
                "type": "address"
            }
        ],
        "name": "migrate",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "migrationAdmin",
        "outputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "name",
        "outputs": [
            {
                "internalType": "string",
                "name": "",
                "type": "string"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "account",
                "type": "address"
            }
        ],
        "name": "nonces",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "nonce",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "owner_",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "spender_",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "value_",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "deadline_",
                "type": "uint256"
            },
            {
                "internalType": "bytes",
                "name": "signature_",
                "type": "bytes"
            }
        ],
        "name": "permit",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "owner_",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "spender_",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "value_",
                "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": [],
        "name": "principalOfTotalEarningSupply",
        "outputs": [
            {
                "internalType": "uint112",
                "name": "",
                "type": "uint112"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "from_",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "to_",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "value_",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "validAfter_",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "validBefore_",
                "type": "uint256"
            },
            {
                "internalType": "bytes32",
                "name": "nonce_",
                "type": "bytes32"
            },
            {
                "internalType": "bytes",
                "name": "signature_",
                "type": "bytes"
            }
        ],
        "name": "receiveWithAuthorization",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "from_",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "to_",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "value_",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "validAfter_",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "validBefore_",
                "type": "uint256"
            },
            {
                "internalType": "bytes32",
                "name": "nonce_",
                "type": "bytes32"
            },
            {
                "internalType": "bytes32",
                "name": "r_",
                "type": "bytes32"
            },
            {
                "internalType": "bytes32",
                "name": "vs_",
                "type": "bytes32"
            }
        ],
        "name": "receiveWithAuthorization",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "from_",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "to_",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "value_",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "validAfter_",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "validBefore_",
                "type": "uint256"
            },
            {
                "internalType": "bytes32",
                "name": "nonce_",
                "type": "bytes32"
            },
            {
                "internalType": "uint8",
                "name": "v_",
                "type": "uint8"
            },
            {
                "internalType": "bytes32",
                "name": "r_",
                "type": "bytes32"
            },
            {
                "internalType": "bytes32",
                "name": "s_",
                "type": "bytes32"
            }
        ],
        "name": "receiveWithAuthorization",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "registrar",
        "outputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "account_",
                "type": "address"
            }
        ],
        "name": "startEarningFor",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "account_",
                "type": "address"
            }
        ],
        "name": "stopEarningFor",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "symbol",
        "outputs": [
            {
                "internalType": "string",
                "name": "",
                "type": "string"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "totalAccruedYield",
        "outputs": [
            {
                "internalType": "uint240",
                "name": "yield_",
                "type": "uint240"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "totalEarningSupply",
        "outputs": [
            {
                "internalType": "uint240",
                "name": "",
                "type": "uint240"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "totalNonEarningSupply",
        "outputs": [
            {
                "internalType": "uint240",
                "name": "",
                "type": "uint240"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "totalSupply",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "totalSupply_",
                "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": "sender_",
                "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"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "from_",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "to_",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "value_",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "validAfter_",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "validBefore_",
                "type": "uint256"
            },
            {
                "internalType": "bytes32",
                "name": "nonce_",
                "type": "bytes32"
            },
            {
                "internalType": "bytes32",
                "name": "r_",
                "type": "bytes32"
            },
            {
                "internalType": "bytes32",
                "name": "vs_",
                "type": "bytes32"
            }
        ],
        "name": "transferWithAuthorization",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "from_",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "to_",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "value_",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "validAfter_",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "validBefore_",
                "type": "uint256"
            },
            {
                "internalType": "bytes32",
                "name": "nonce_",
                "type": "bytes32"
            },
            {
                "internalType": "bytes",
                "name": "signature_",
                "type": "bytes"
            }
        ],
        "name": "transferWithAuthorization",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "from_",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "to_",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "value_",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "validAfter_",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "validBefore_",
                "type": "uint256"
            },
            {
                "internalType": "bytes32",
                "name": "nonce_",
                "type": "bytes32"
            },
            {
                "internalType": "uint8",
                "name": "v_",
                "type": "uint8"
            },
            {
                "internalType": "bytes32",
                "name": "r_",
                "type": "bytes32"
            },
            {
                "internalType": "bytes32",
                "name": "s_",
                "type": "bytes32"
            }
        ],
        "name": "transferWithAuthorization",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "recipient_",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "amount_",
                "type": "uint256"
            }
        ],
        "name": "unwrap",
        "outputs": [
            {
                "internalType": "uint240",
                "name": "unwrapped_",
                "type": "uint240"
            }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "recipient_",
                "type": "address"
            }
        ],
        "name": "unwrap",
        "outputs": [
            {
                "internalType": "uint240",
                "name": "unwrapped_",
                "type": "uint240"
            }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "vault",
        "outputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "wasEarningEnabled",
        "outputs": [
            {
                "internalType": "bool",
                "name": "wasEarning_",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "recipient_",
                "type": "address"
            }
        ],
        "name": "wrap",
        "outputs": [
            {
                "internalType": "uint240",
                "name": "wrapped_",
                "type": "uint240"
            }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "recipient_",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "amount_",
                "type": "uint256"
            }
        ],
        "name": "wrap",
        "outputs": [
            {
                "internalType": "uint240",
                "name": "wrapped_",
                "type": "uint240"
            }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
    }
]
