{
    "abi": [
        {
            "inputs": [],
            "name": "AlreadyInitialized",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "BadIndexError",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "BadMaxLockPositions",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "BadRewardsAmount",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "BadStart",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "EarlyWithdrawalInfeasible",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "InactiveStreamError",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "IncorrectWeight",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "InsufficientRewardsError",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "InvalidPenaltyWeights",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "InvalidShareWeights",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "LockAlreadyOpen",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "LockNotClosed",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "LockNotExpired",
            "type": "error"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "_lockId",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "_account",
                    "type": "address"
                }
            ],
            "name": "MaxLockIdExceeded",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "MaxLockPeriodExceeded",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "MaxLockPositionsReached",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "MinLockPeriodNotMet",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "NoActiveStream",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "NoLockError",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "NoLocks",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "NoPendings",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "NoSharesError",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "NoStakeError",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "NotLockOwner",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "NotOwner",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "NotPaused",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "NotProposed",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "NotReleased",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "ProposalExpired",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "RewardsTooHigh",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "RewardsTooLow",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "StreamIdZero",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "StreamInactive",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "StreamInactiveError",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "StreamNotWithdrawn",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "UnsupportedToken",
            "type": "error"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_vault",
                    "type": "address"
                }
            ],
            "name": "VaultMigrated",
            "type": "error"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_vault",
                    "type": "address"
                }
            ],
            "name": "VaultNotMigrated",
            "type": "error"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_vault",
                    "type": "address"
                }
            ],
            "name": "VaultNotSupported",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "ZeroAddress",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "ZeroAmount",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "ZeroCoefficient",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "ZeroLockId",
            "type": "error"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "lockId",
                    "type": "uint256"
                }
            ],
            "name": "ZeroLocked",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "ZeroPenalty",
            "type": "error"
        },
        {
            "inputs": [],
            "name": "ZeroTotalStakedToken",
            "type": "error"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint8",
                    "name": "version",
                    "type": "uint8"
                }
            ],
            "name": "Initialized",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "lockId",
                    "type": "uint256"
                }
            ],
            "name": "PartialUnstaked",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "streamId",
                    "type": "uint256"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "pendings",
                    "type": "uint256"
                }
            ],
            "name": "Pending",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "streamId",
                    "type": "uint256"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "user",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "pendingAmount",
                    "type": "uint256"
                }
            ],
            "name": "Released",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                },
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "previousAdminRole",
                    "type": "bytes32"
                },
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "newAdminRole",
                    "type": "bytes32"
                }
            ],
            "name": "RoleAdminChanged",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "sender",
                    "type": "address"
                }
            ],
            "name": "RoleGranted",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "sender",
                    "type": "address"
                }
            ],
            "name": "RoleRevoked",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "streamShares",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "nVoteToken",
                    "type": "uint256"
                },
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "lockId",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "end",
                    "type": "uint256"
                }
            ],
            "name": "Staked",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "streamId",
                    "type": "uint256"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "owner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "token",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "tau",
                    "type": "uint256"
                }
            ],
            "name": "StreamCreated",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "streamId",
                    "type": "uint256"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "owner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "token",
                    "type": "address"
                }
            ],
            "name": "StreamProposalCancelled",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "streamId",
                    "type": "uint256"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "streamOwner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "rewardToken",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "maxDepositAmount",
                    "type": "uint256"
                }
            ],
            "name": "StreamProposed",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "streamId",
                    "type": "uint256"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "owner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "token",
                    "type": "address"
                }
            ],
            "name": "StreamRemoved",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "lockId",
                    "type": "uint256"
                }
            ],
            "name": "Unstaked",
            "type": "event"
        },
        {
            "inputs": [],
            "name": "DEFAULT_ADMIN_ROLE",
            "outputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "PAUSE_ROLE",
            "outputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "STREAM_MANAGER_ROLE",
            "outputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "TREASURY_ROLE",
            "outputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "flags",
                    "type": "uint256"
                }
            ],
            "name": "adminPause",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "streamId",
                    "type": "uint256"
                }
            ],
            "name": "cancelStreamProposal",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "streamId",
                    "type": "uint256"
                }
            ],
            "name": "claimAllLockRewardsForStream",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "lockId",
                    "type": "uint256"
                }
            ],
            "name": "claimAllStreamRewardsForLock",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "uint256",
                            "name": "amount",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "lockPeriod",
                            "type": "uint256"
                        },
                        {
                            "internalType": "address",
                            "name": "account",
                            "type": "address"
                        }
                    ],
                    "internalType": "struct CreateLockParams[]",
                    "name": "lockPositions",
                    "type": "tuple[]"
                }
            ],
            "name": "createFixedLocksOnBehalfOfUserByAdmin",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "lockPeriod",
                    "type": "uint256"
                }
            ],
            "name": "createLock",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "streamId",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "rewardTokenAmount",
                    "type": "uint256"
                }
            ],
            "name": "createStream",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "lockId",
                    "type": "uint256"
                }
            ],
            "name": "earlyUnlock",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "emergencyUnlockAndWithdraw",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                }
            ],
            "name": "getAllLocks",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "uint128",
                            "name": "amountOfToken",
                            "type": "uint128"
                        },
                        {
                            "internalType": "uint128",
                            "name": "positionStreamShares",
                            "type": "uint128"
                        },
                        {
                            "internalType": "uint64",
                            "name": "end",
                            "type": "uint64"
                        },
                        {
                            "internalType": "address",
                            "name": "owner",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "amountOfVoteToken",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct LockedBalance[]",
                    "name": "",
                    "type": "tuple[]"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                }
            ],
            "name": "getRoleAdmin",
            "outputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "streamId",
                    "type": "uint256"
                }
            ],
            "name": "getStream",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "rewardDepositAmount",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "rewardClaimedAmount",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "rps",
                    "type": "uint256"
                },
                {
                    "internalType": "enum StreamStatus",
                    "name": "status",
                    "type": "uint8"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "streamId",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "lockId",
                    "type": "uint256"
                }
            ],
            "name": "getStreamClaimableAmountPerLock",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "streamId",
                    "type": "uint256"
                }
            ],
            "name": "getStreamSchedule",
            "outputs": [
                {
                    "internalType": "uint256[]",
                    "name": "scheduleTimes",
                    "type": "uint256[]"
                },
                {
                    "internalType": "uint256[]",
                    "name": "scheduleRewards",
                    "type": "uint256[]"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "streamId",
                    "type": "uint256"
                }
            ],
            "name": "getUsersPendingRewards",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                }
            ],
            "name": "grantRole",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                }
            ],
            "name": "hasRole",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_owner",
                    "type": "address"
                },
                {
                    "internalType": "uint256[]",
                    "name": "scheduleTimes",
                    "type": "uint256[]"
                },
                {
                    "internalType": "uint256[]",
                    "name": "scheduleRewards",
                    "type": "uint256[]"
                },
                {
                    "internalType": "uint256",
                    "name": "tau",
                    "type": "uint256"
                }
            ],
            "name": "initializeMainStream",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_admin",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "_vault",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "_treasury",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "_mainToken",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "_voteToken",
                    "type": "address"
                },
                {
                    "components": [
                        {
                            "internalType": "uint32",
                            "name": "maxWeightShares",
                            "type": "uint32"
                        },
                        {
                            "internalType": "uint32",
                            "name": "minWeightShares",
                            "type": "uint32"
                        },
                        {
                            "internalType": "uint32",
                            "name": "maxWeightPenalty",
                            "type": "uint32"
                        },
                        {
                            "internalType": "uint32",
                            "name": "minWeightPenalty",
                            "type": "uint32"
                        },
                        {
                            "internalType": "uint32",
                            "name": "penaltyWeightMultiplier",
                            "type": "uint32"
                        }
                    ],
                    "internalType": "struct Weight",
                    "name": "_weight",
                    "type": "tuple"
                },
                {
                    "components": [
                        {
                            "internalType": "uint32",
                            "name": "voteShareCoef",
                            "type": "uint32"
                        },
                        {
                            "internalType": "uint32",
                            "name": "voteLockCoef",
                            "type": "uint32"
                        }
                    ],
                    "internalType": "struct VoteCoefficient",
                    "name": "voteCoef",
                    "type": "tuple"
                },
                {
                    "internalType": "uint256",
                    "name": "_maxLocks",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "_rewardsContract",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "_minLockPeriod",
                    "type": "uint256"
                }
            ],
            "name": "initializeStaking",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "mainToken",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "maxLockPeriod",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "maxLockPositions",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "minLockPeriod",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "paused",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "streamOwner",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "rewardToken",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "percentToTreasury",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "maxDepositAmount",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "minDepositAmount",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256[]",
                    "name": "scheduleTimes",
                    "type": "uint256[]"
                },
                {
                    "internalType": "uint256[]",
                    "name": "scheduleRewards",
                    "type": "uint256[]"
                },
                {
                    "internalType": "uint256",
                    "name": "tau",
                    "type": "uint256"
                }
            ],
            "name": "proposeStream",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "streamId",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "streamFundReceiver",
                    "type": "address"
                }
            ],
            "name": "removeStream",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                }
            ],
            "name": "renounceRole",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                }
            ],
            "name": "revokeRole",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "rewardsCalculator",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "newMaxLockPositions",
                    "type": "uint256"
                }
            ],
            "name": "setMaxLockPositions",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "_minLockPeriod",
                    "type": "uint256"
                }
            ],
            "name": "setMinimumLockPeriod",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "newTreasury",
                    "type": "address"
                }
            ],
            "name": "setTreasuryAddress",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "name": "streamTotalUserPendings",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes4",
                    "name": "interfaceId",
                    "type": "bytes4"
                }
            ],
            "name": "supportsInterface",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "totalAmountOfStakedToken",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "totalAmountOfVoteToken",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "totalPenaltyBalance",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "totalStreamShares",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "treasury",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "lockId",
                    "type": "uint256"
                }
            ],
            "name": "unlock",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "lockId",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "unlockPartially",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_vault",
                    "type": "address"
                }
            ],
            "name": "updateVault",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "users",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "voteTokenBalance",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "vault",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "voteToken",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "weight",
            "outputs": [
                {
                    "internalType": "uint32",
                    "name": "maxWeightShares",
                    "type": "uint32"
                },
                {
                    "internalType": "uint32",
                    "name": "minWeightShares",
                    "type": "uint32"
                },
                {
                    "internalType": "uint32",
                    "name": "maxWeightPenalty",
                    "type": "uint32"
                },
                {
                    "internalType": "uint32",
                    "name": "minWeightPenalty",
                    "type": "uint32"
                },
                {
                    "internalType": "uint32",
                    "name": "penaltyWeightMultiplier",
                    "type": "uint32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "withdrawAllStreams",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "withdrawPenalty",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "streamId",
                    "type": "uint256"
                }
            ],
            "name": "withdrawStream",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ]
}
