rbacAbi: readonly [{ 
    type: "error"; 
    inputs: readonly []; 
    name: "AlreadyInitialized"; 
}, { 
    type: "error"; 
    inputs: readonly []; 
    name: "LengthMismatch"; 
}, { 
    type: "error"; 
    inputs: readonly []; 
    name: "NewOwnerIsZeroAddress"; 
}, { 
    type: "error"; 
    inputs: readonly []; 
    name: "NoHandoverRequest"; 
}, { 
    type: "error"; 
    inputs: readonly []; 
    name: "Unauthorized"; 
}, { 
    type: "event"; 
    anonymous: false; 
    inputs: readonly [{ 
        name: "pendingOwner"; 
        internalType: "address"; 
        type: "address"; 
        indexed: true; 
    }]; 
    name: "OwnershipHandoverCanceled"; 
}, { 
    type: "event"; 
    anonymous: false; 
    inputs: readonly [{ 
        name: "pendingOwner"; 
        internalType: "address"; 
        type: "address"; 
        indexed: true; 
    }]; 
    name: "OwnershipHandoverRequested"; 
}, { 
    type: "event"; 
    anonymous: false; 
    inputs: readonly [{ 
        name: "oldOwner"; 
        internalType: "address"; 
        type: "address"; 
        indexed: true; 
    }, { 
        name: "newOwner"; 
        internalType: "address"; 
        type: "address"; 
        indexed: true; 
    }]; 
    name: "OwnershipTransferred"; 
}, { 
    type: "event"; 
    anonymous: false; 
    inputs: readonly [{ 
        name: "user"; 
        internalType: "address"; 
        type: "address"; 
        indexed: true; 
    }, { 
        name: "roles"; 
        internalType: "uint256"; 
        type: "uint256"; 
        indexed: true; 
    }]; 
    name: "RolesUpdated"; 
}, { 
    type: "function"; 
    inputs: readonly []; 
    name: "ADMIN_ROLE"; 
    outputs: readonly [{ 
        name: ""; 
        internalType: "uint256"; 
        type: "uint256"; 
    }]; 
    stateMutability: "view"; 
}, { 
    type: "function"; 
    inputs: readonly []; 
    name: "MANAGER_ROLE"; 
    outputs: readonly [{ 
        name: ""; 
        internalType: "uint256"; 
        type: "uint256"; 
    }]; 
    stateMutability: "view"; 
}, { 
    type: "function"; 
    inputs: readonly []; 
    name: "cancelOwnershipHandover"; 
    outputs: readonly []; 
    stateMutability: "payable"; 
}, { 
    type: "function"; 
    inputs: readonly [{ 
        name: "pendingOwner"; 
        internalType: "address"; 
        type: "address"; 
    }]; 
    name: "completeOwnershipHandover"; 
    outputs: readonly []; 
    stateMutability: "payable"; 
}, { 
    type: "function"; 
    inputs: readonly [{ 
        name: "accounts_"; 
        internalType: "address[]"; 
        type: "address[]"; 
    }, { 
        name: "roles_"; 
        internalType: "uint256[]"; 
        type: "uint256[]"; 
    }]; 
    name: "grantManyRoles"; 
    outputs: readonly []; 
    stateMutability: "nonpayable"; 
}, { 
    type: "function"; 
    inputs: readonly [{ 
        name: "user"; 
        internalType: "address"; 
        type: "address"; 
    }, { 
        name: "roles"; 
        internalType: "uint256"; 
        type: "uint256"; 
    }]; 
    name: "grantRoles"; 
    outputs: readonly []; 
    stateMutability: "payable"; 
}, { 
    type: "function"; 
    inputs: readonly [{ 
        name: "user"; 
        internalType: "address"; 
        type: "address"; 
    }, { 
        name: "roles"; 
        internalType: "uint256"; 
        type: "uint256"; 
    }]; 
    name: "hasAllRoles"; 
    outputs: readonly [{ 
        name: ""; 
        internalType: "bool"; 
        type: "bool"; 
    }]; 
    stateMutability: "view"; 
}, { 
    type: "function"; 
    inputs: readonly [{ 
        name: "user"; 
        internalType: "address"; 
        type: "address"; 
    }, { 
        name: "roles"; 
        internalType: "uint256"; 
        type: "uint256"; 
    }]; 
    name: "hasAnyRole"; 
    outputs: readonly [{ 
        name: ""; 
        internalType: "bool"; 
        type: "bool"; 
    }]; 
    stateMutability: "view"; 
}, { 
    type: "function"; 
    inputs: readonly [{ 
        name: "account_"; 
        internalType: "address"; 
        type: "address"; 
    }]; 
    name: "isAuthorized"; 
    outputs: readonly [{ 
        name: ""; 
        internalType: "bool"; 
        type: "bool"; 
    }]; 
    stateMutability: "view"; 
}, { 
    type: "function"; 
    inputs: readonly []; 
    name: "owner"; 
    outputs: readonly [{ 
        name: "result"; 
        internalType: "address"; 
        type: "address"; 
    }]; 
    stateMutability: "view"; 
}, { 
    type: "function"; 
    inputs: readonly [{ 
        name: "pendingOwner"; 
        internalType: "address"; 
        type: "address"; 
    }]; 
    name: "ownershipHandoverExpiresAt"; 
    outputs: readonly [{ 
        name: "result"; 
        internalType: "uint256"; 
        type: "uint256"; 
    }]; 
    stateMutability: "view"; 
}, { 
    type: "function"; 
    inputs: readonly []; 
    name: "renounceOwnership"; 
    outputs: readonly []; 
    stateMutability: "payable"; 
}, { 
    type: "function"; 
    inputs: readonly [{ 
        name: "roles"; 
        internalType: "uint256"; 
        type: "uint256"; 
    }]; 
    name: "renounceRoles"; 
    outputs: readonly []; 
    stateMutability: "payable"; 
}, { 
    type: "function"; 
    inputs: readonly []; 
    name: "requestOwnershipHandover"; 
    outputs: readonly []; 
    stateMutability: "payable"; 
}, { 
    type: "function"; 
    inputs: readonly [{ 
        name: "accounts_"; 
        internalType: "address[]"; 
        type: "address[]"; 
    }, { 
        name: "roles_"; 
        internalType: "uint256[]"; 
        type: "uint256[]"; 
    }]; 
    name: "revokeManyRoles"; 
    outputs: readonly []; 
    stateMutability: "nonpayable"; 
}, { 
    type: "function"; 
    inputs: readonly [{ 
        name: "user"; 
        internalType: "address"; 
        type: "address"; 
    }, { 
        name: "roles"; 
        internalType: "uint256"; 
        type: "uint256"; 
    }]; 
    name: "revokeRoles"; 
    outputs: readonly []; 
    stateMutability: "payable"; 
}, { 
    type: "function"; 
    inputs: readonly [{ 
        name: "user"; 
        internalType: "address"; 
        type: "address"; 
    }]; 
    name: "rolesOf"; 
    outputs: readonly [{ 
        name: "roles"; 
        internalType: "uint256"; 
        type: "uint256"; 
    }]; 
    stateMutability: "view"; 
}, { 
    type: "function"; 
    inputs: readonly [{ 
        name: "accounts_"; 
        internalType: "address[]"; 
        type: "address[]"; 
    }, { 
        name: "authorized_"; 
        internalType: "bool[]"; 
        type: "bool[]"; 
    }]; 
    name: "setAuthorized"; 
    outputs: readonly []; 
    stateMutability: "nonpayable"; 
}, { 
    type: "function"; 
    inputs: readonly [{ 
        name: "newOwner"; 
        internalType: "address"; 
        type: "address"; 
    }]; 
    name: "transferOwnership"; 
    outputs: readonly []; 
    stateMutability: "payable"; 
}]